Newsgroup: it.comp.reti.locali
Titolo: Conoscere IP pubblico router

Salve a tutti.
Ho cercato un po' ma... proprio non esiste un modo diretto, senza uscire
all'esterno e con un singolo comando, per conoscere, da una macchina Linux
interna a una LAN, l'IP pubblico (dinamico) che è stato assegnato dal
provider al router tramite il quale la LAN è connessa a Internet?
Per il momento uso una cosa di questo genere:
lynx -source 
www.whatismyip.com
 | rgrep -H '\d+\.\d+\.\d+\.\d+' | tail -n1
...ma non è molto elegante. :-/ Preferirei non dover fare riferimento a
siti esterni.
-- 
Ciao,
  Marco.
..."Outside", David Bowie 1995

 siti esterni.
Se non puoi lavorare "sul" router, temo che tu non abbia altre soluzioni 
che "uscire". 8|
-- 
			Luca Amicone
			Microsoft MVP
			ICQ: 14890779

 siti esterni.
http://www.helpadsl.it/modules.php?name=ping
non credo che ti serva a molto se non vuoi far rif a siti esterni... prova a
capire come funge :-)
-- 
Ciao :o)              Raziel             #ICQ a richiesta
______________________________________________________
Barton 2500+, Abit NF7-S rev. 2, 512MB DDR PC3200,
Maxtor 80GB, NEC ND-1300A (fw 1.09), LG GDR-8161B, FX 5200

Marco De Vitis wrote:

potresti vedere un po' ipcheck.py, il client pr dyndns ( 
ipcheck.sf.net
 )
che implementa varie funzioncine per vari modelli di router.
S sei fortunato trovi anche quella per il tuo, ma comunque anche scriverne
una che interroghi il router via telnet e/o web non e' poi cosi'
difficoltoso...
-- 
Franco (nextime) Lanza
Network and Security Admin
nexlab.it

 provider al router tramite il quale la LAN è connessa a Internet?
Se il tuo route ha il servizio snmp, puoi usare l'utility snmpwalk su linux,
tipo:
snmpwalk <ip_del_tuo_router> -c public
ip.ipAddrTable.ipAddrEntry.ipAdEntAddr
Ciao.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.561 / Virus Database: 353 - Release Date: 13/01/2004

 Se non puoi lavorare "sul" router, temo che tu non abbia altre soluzioni 
? Io _posso_ lavorare "sul" router... ti riferisci a una procedura via
telnet, come suggerito da Franco? Ci avevo pensato, ma sarei costretto a
mettere la password di amministratore del router in chiaro nell'eventuale
script... no?
Pensandoci bene, forse non sarebbe un grosso problema, dato che chiunque
riesca ad arrivare a leggere quel file sul server probabilmente se ne fa
un baffo della password del router...
-- 
Ciao,
  Marco.
..."Kid A", Radiohead 2000

 prova a capire come funge :-)
Funge che ti mostra l'IP da cui proviene la tua richiesta HTTP... no?
Ricrearlo nella LAN non servirebbe a niente, otterrei l'IP privato.
-- 
Ciao,
  Marco.
..."Close To The Edge", Yes 1972

 probabilmente se ne fa un baffo della password del router...
Una password di amministratore su un bel router connesso ad internet non 
si butta mai via, prima o poi viene comoda!
Guarda, personalmente credo che per certi scopi sia più importante 
proteggere i router che i dati veri e propri. Magari la tua rete 
potrebbe avere dati che non mi interessano proprio, ma la tua 
connettività, la possibilità di appoggiarmi a te per attacchi, DOS, 
spoof, spam e chi + ne ha + ne metta......
E comunque hai sempre la soluzione "poco elegante". ;)


 si butta mai via, prima o poi viene comoda!
:)
-- 
Ciao,
  Marco.
..."Crac!", Area 1975

 ip.ipAddrTable.ipAddrEntry.ipAdEntAddr
Ottima idea! Ora devo solo capire l'esatta sintassi da usare, non ho
indicazioni sulla struttura dell'albero SNMP del router... se faccio un:
  snmpwalk 192.168.1.254 public | grep 151.44.83.85
(dove il primo è l'IP privato e il secondo l'IP pubblico che so essere
attualmente assegnato)
ottengo, oltre a svariati errori (Cannot find module...):
.iso.3.6.1.2.1.4.20.1.1.151.44.83.85 = IpAddress: 151.44.83.85
.iso.3.6.1.2.1.4.20.1.2.151.44.83.85 = 6
.iso.3.6.1.2.1.4.20.1.3.151.44.83.85 = IpAddress: 255.0.0.0
.iso.3.6.1.2.1.4.20.1.4.151.44.83.85 = 1
.iso.3.6.1.2.1.4.20.1.5.151.44.83.85 = 1636
Quindi si dove si trova l'IP. Se però faccio:
  snmpwalk 192.168.1.254 public .iso.3.6.1.2.1.4.20.1.1
Ottengo tutti e tre gli IP:
.iso.3.6.1.2.1.4.20.1.1.127.0.0.1 = IpAddress: 127.0.0.1
.iso.3.6.1.2.1.4.20.1.1.151.44.83.85 = IpAddress: 151.44.83.85
.iso.3.6.1.2.1.4.20.1.1.192.168.1.254 = IpAddress: 192.168.1.254
Quindi... sapendo che l'IP pubblico inizierà sempre per 151 (ADSL Wind),
potrei fare:
  snmpwalk 192.168.1.254 public .iso.3.6.1.2.1.4.20.1.1.151
E poi un grep sulla stringa risultante. Credi che sia giusto? Oppure
esisteranno anche in questo router dei nomi "normali" per le variabili
SNMP?
Grazie.  
-- 
Ciao,
  Marco.
..."You Had It Coming", Jeff Beck 2001


Mmmmm, non mi piace molto! Faresti meglio a fare:
snmpwalk 192.168.1.254 public .iso.3.6.1.2.1.4.20.1.1 |grep -v 127.0.0.1
|grep -v 192.168.1.254
Cosi' otterrai sicuramente il valore dell'ip pubblico escludendo il
localhost e l'ip privato del router che tanto sono fissi.


 Cosi' otterrai sicuramente il valore dell'ip pubblico escludendo il
Hai ragione, non ci avevo pensato, č meglio.
Ma č normale che i parametri SNMP del router siano raggiungibili solo
tramite quella strana sequenza di numeri?
Grazie ancora.
-- 
Ciao,
  Marco.
..."Refugee", Refugee 1974

 tramite quella strana sequenza di numeri?
Si, normalissimo ^__^
Anche se quei numeri possono essere sostituiti dai nomi corrispondenti tipo:
ip.ipAddrTable.ipAddrEntry.ipAdEntAddr
Quei numeri poi non sono tanto strani.... stanno ad indicare le varie
posizioni della struttura smnp deltuo router, immaginalo come se fosse un
albero, con tanti rami... non so se mi sono spiegato ^__^


 albero, con tanti rami... non so se mi sono spiegato ^__^
Sě, sě, questo lo so, anche io un paio di messaggi fa avevo parlato di
"albero". ;)
Comunque tutto ok, script finito e perfettamente funzionante, grazie.
-- 
Ciao,
  Marco.
..."Have a Little Faith", Bill Frisell 1993