Programmeringsproblem

2003-05-16 tråd Stig Andersson





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

2003-05-16 tråd Sebastian Haglund
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

2003-05-16 tråd David Westlund
 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

2003-05-16 tråd David Hardne
 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

2003-05-16 tråd Emil Pedersen

[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

2003-05-16 tråd Tommy Lindgren
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