-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Saturday 08 May 2004 01:11, Carlos wrote:
> #!/usr/bin/perl -w
> use strict;
> use IO::Socket;
> use Sys::Hostname;
> my $name = hostname();
> my $ip = inet_ntoa(scalar gethostbyname($name));
> printf("$ip\n");
>
>
> O programa acima sempre retornara o endereco ip da maquina ,
> estando ele associado ao hostname.

O que nem sempre � verdade... 

Geralmente esta t�cnica s� retorna o IP desejado se voc� solicitar o 
IP de um endere�o cadastrado, e.g., no Dyndns ou outro servi�o de DNS 
din�mico.

Claro, para servidores ou m�quinas com IP fixo isso tamb�m n�o � 
preciso...


Se o intuito, entretanto, era obter o IP para montar o firewall do 
iptables, a t�cnica usada est� errada e ele n�o � necess�rio.



O que eu uso em alguns lugares para obter o IP de hosts com DNS 
din�mico � o seguinte:

=====================================================================
#!/usr/bin/python -tt
import socket

server = ('www.uol.com.br', 80)

def getIPAddress():
     sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     sock.connect(server)
     addr,port = sock.getsockname()
     return addr

print getIPAddress()
=====================================================================

E ele obt�m, desta maneira, o endere�o IP da interface usada para 
estabelecer a conex�o, ou seja, a que vai para a Internet (a menos 
que voc� execute isto dentro da rede de servidores do UOL, caso no 
qual voc� pode trocar o endere�o dali por outro :-))


[EMAIL PROTECTED] clientes]$ python find_ip.py
200.138.98.109
[EMAIL PROTECTED] clientes]$ ifconfig ppp0
ppp0      Encapsulamento do Link: Protocolo Ponto-a-Ponto
          inet end.: 200.138.98.109  P-a-P:200.101.129.41  
Masc:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  M�trica:1
          pacotes RX:4730677 erros:4919297 descart.:0 sobrepos.:0 
quadro:0
          pacotes TX:3616256 erros:0 descart.:0 sobrepos.:0 
portadora:0
          colis�es:0 txqueuelen:3
          RX bytes:4119164435 (3928.3 Mb)  TX bytes:474000824 (452.0 
Mb)

[EMAIL PROTECTED] clientes]$ perl
#!/usr/bin/perl -w
use strict;
use IO::Socket;
use Sys::Hostname;
my $name = hostname();
my $ip = inet_ntoa(scalar gethostbyname($name));
printf("$ip\n");

10.0.0.1
[EMAIL PROTECTED] clientes]$


Sds,
- -- 
Godoy.     <[EMAIL PROTECTED]>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAnMwxEzC+baSjBiURAp7mAJ9hEjiCGv9zj2Iw98R3MMIKgUVV5gCfTzUv
u8E9e7+kzxW7HCl6mfgBdo0=
=Xn7l
-----END PGP SIGNATURE-----
---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a