[AWK / BASH] Hoe een IP resolven naar naam

Pagina: 1
Acties:

  • arnova
  • Registratie: Augustus 2001
  • Laatst online: 21:28

arnova

weet veel, maar niet alles

Topicstarter
Ik ben dus een scriptje aan het schrijven met AWK & BASH om mijn firewall logs te filteren. In zo'n log regel staat een IP wat ik wil resolven naar zijn naam. Weet iemand de handigste manier om dat IP te vervangen in die regel door de desbetreffende host naam? Het kan denk ik het beste in BASH maar als het in AWK ook kan vink het ook best.

ESP PV-Boiler Controller https://github.com/arnova/pvboiler


Verwijderd

Wat dacht je van host of dig :?

code:
1
hname=`dig +short -x $ip`

  • arnova
  • Registratie: Augustus 2001
  • Laatst online: 21:28

arnova

weet veel, maar niet alles

Topicstarter
Ik had zelf al iets met host bedacht op die manier ja. Maar hoe kan ik dan het beste zorgen dat een regel zoals deze:
"kernel log: blblba bla blabla 192.168.0.10 blabla"

dit wordt:

"kernel log: blblba bla blabla RESOLVED_HOST blabla"

?

ESP PV-Boiler Controller https://github.com/arnova/pvboiler


  • arnova
  • Registratie: Augustus 2001
  • Laatst online: 21:28

arnova

weet veel, maar niet alles

Topicstarter
Ik heb nu namelijk de volgende opzet (het script wordt gebruikt voor een pipe):

code:
1
2
3
4
5
6
7
8
#!/bin/sh

/bin/awk '

# Hier zit het firewall filter
'

# Einde van het script


Ik denk dit ik het helemaal aan het einde van het script moet invoegen, maar hoe?

ESP PV-Boiler Controller https://github.com/arnova/pvboiler


Verwijderd

Dan heb je dus iets als sed of awk nodig en een regexje.

code:
1
sed -e s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/$hname/ orig_file > new_file


Bovenstaande is ongetest en het eerste wat in me op kwam als simpele regex voor een ip-adres. Ik heb hem al ge-escaped voor een bashshell voor je. Uiteraard is dit een wel erg banale regex, aangezien een ip-adres (IPV4) waarvan het eerste octet uit 3 cijfers bestaat nooit met een cijfer hoger dan 2 kan beginnen.

[ Voor 0% gewijzigd door Verwijderd op 25-08-2002 20:06 . Reden: wel handig om de files toe te voegen ;) ]


  • arnova
  • Registratie: Augustus 2001
  • Laatst online: 21:28

arnova

weet veel, maar niet alles

Topicstarter
Thanks! Maar inmiddels heb ik het al anders opgelost, in AWK namelijk. Ik heb het als volgt gedaan:

code:
1
2
          syscall=sprintf("echo \"$(dig +short -x %s)\" 2>/dev/null |head -n1", substr($i,5,length($i)-5))
          system(syscall)


Die echo is om te zorgen dat indien de query mislukt er toch een end-of-line wordt geprint.

ESP PV-Boiler Controller https://github.com/arnova/pvboiler

Pagina: 1