Programmeringsproblem
Hej du som är kunnig i "bash" Jag har en fil som innehåller olika adresser och filen heter host.god och ser ut så här: aftonblade.se expressen.se altavista.se Visserligen så är det inte dessa adresser som ligger i filen men det har mindre betydelse för problemet. Sedan har jag en skript som skall kolla vad dessa adresser har för ip och skriva in dessa i en fil som heter ip.new och det är detta som jag inte klarar av och hoppas att någon kan hjälpa mig med. Min script #!/bin/sh . /etc/live.cfg for i in `cat /host.god`; do nslookup "$i" ip.temp # ip.temp innehåller nu IP-nummer till en post i host.god #Här finns annan kod som inte hör till problemet done cp /sadako/ip.new /sadako/ip.old Så här ser nu ip.temp ut: Server: noname-201-233.ip-pluggen.com Address: 212.28.201.233 Non-authoritative answer: Name: aftonbladet.se Address: 212.112.162.203 Hur skall jag kunna plocka upp IP nummert (212.112.162.203) och lägga det i en variabel? Tack på förhand
Re: Programmeringsproblem
On Fri, 2003-05-16 at 10:07, Stig Andersson wrote: Hur skall jag kunna plocka upp IP nummert (212.112.162.203) och lägga det i en variabel? Jag hade nog använt host istället för nslookup $ host www.aftonbladet.se www.aftonbladet.se A 212.112.162.203 därefter kan man plocka ut ip-adressen med awk $ host www.aftonbladet.se|awk '{print $3}' 212.112.162.203 lägga den i en variabel $ ip=`host www.aftonbladet.se|awk '{print $3}'` $ echo $ip 212.112.162.203 nu märkte jag dock att host i stable och unstable ger olika output men det går att anpassa awk för respektive. Mina exempel kördes på en woody-burk, stable altså. /Sebastian
Re: Programmeringsproblem
Hur skall jag kunna plocka upp IP nummert (212.112.162.203) och lägga det i en variabel? Jag skulle använda host i stället för nslookup. I så fall: VAR=$(host gnuheter.com | cut -f 3) mvh David Westlund
Re: Programmeringsproblem
Stig Andersson wrote on May 16, 2003 at 10:07:54 AM: [snip] Hur skall jag kunna plocka upp IP nummert (212.112.162.203) och lägga det i en variabel? Finns många olika metoder, testa tex med: IPLISTA=`dig -f host.god | awk '/^[A-z0-9]/ {print $5}'` Annars kan jag rekommendera perl :P -- . David Hardne [EMAIL PROTECTED] `-- wget -O- tx.se/dh|gpg --import
Re: Programmeringsproblem
[M$ html-brev bör du undvika, det blir inte så bra i många icke-MS klienter] Följande bör göra ungefär vad du vill (observera att det är en rad), den spottar ur sig ipnummren för de hostnamn som finns i infilen ('host.god'). Sedan kan du läsa de ett i taget, skicka till fil eller vad du nu vill med dem med pipe eller redirect. -- cat host.god while read host; do [ $host = ] continue; nslookup $host |awk '{print $NF;}'; done -- 'host' -kommandot (istf nslookup) hittar du tex i paketet 'bind9-host'. // Emil --- Hej du som är kunnig i bash?xml:namespace prefix = o ns = urn:schemas-microsoft-com:office:office / Jag har en fil som innehåller olika adresser och filen heter ?host.god? och ser ut så här: aftonblade.se expressen.se altavista.se Visserligen så är det inte dessa adresser som ligger i filen men det har mindre betydelse för problemet. Sedan har jag en skript som skall kolla vad dessa adresser har för ip och skriva in dessa i en fil som heter ?ip.new? och det är detta som jag inte klarar av och hoppas att någon kan hjälpa mig med. Min script #!/bin/sh . /etc/live.cfg for i in `cat /host.god`; do nslookup $i ip.temp # ?ip.temp? innehåller nu IP-nummer till en post i host.god #Här finns annan kod som inte hör till problemet done cp /sadako/ip.new /sadako/ip.old Så här ser nu ?ip.temp? ut: Server: noname-201-233.ip-pluggen.com Address: 212.28.201.233 Non-authoritative answer: Name:aftonbladet.se Address: 212.112.162.203 Hur skall jag kunna plocka upp IP nummert (212.112.162.203) och lägga det i en variabel? Tack på förhand
Re: Programmeringsproblem
Stig Andersson [EMAIL PROTECTED] writes: nslookup $i ip.temp . . . Hur skall jag kunna plocka upp IP nummert (212.112.162.203) och laegga det i en variabel? Ett sätt är väl att byta ut nslookup-raden ovan till t ex IP=`host $i | cut -f 4- -d ` Jag tycker dock (ba)sh-programmering är bökigt löser problemen hellre med exempelvis Python, om man har den möjligheten. import socket for line in file('host.god'): host = line.rstrip() # Ta bort newline try: ip = socket.gethostbyname(host) except socket.gaierror: print 'Du kanske vill kolla stavningen på %s' % host continue # Göra nåt med IP-adressen: print '%s har IP %s' % (host, ip) -- Tommy Lindgren | o y @ i u . u 41A942131CAA5C | t m l l n x n ^C^C