Fórum Ip da rede #289179

22/07/2005

0

Olá,

Tenho uma máquina ligada a internet (Speedy Home) com duas placas de rede (Uma para internet e e outra para rede local).
Usando a função ´[color=blue:09df07d2d3]GStack.LocalAddress[/color:09df07d2d3]´ do Indy ele me trás o IP da Internet.

Como faço para pegar o IP da rede local?

Desde já agradeço.


Marcelo.l

Marcelo.l

Responder

Posts

22/07/2005

Massuda

Dê uma olhada na lista de strings retornada por GStack.LocalAddresses (note que não é a mesma coisa que GStack.LocalAddress).


Responder

Gostei + 0

22/07/2005

Marcelo.l

Valeu, Massuda

Eu já conhecia esta função.
O problema é que eu preciso implementar uma rotina que pegue o IP da máquina rede local AUTOMÁTICAMENTE. O usuário não terá a opção de escolher o IP (muitas vezes o usuário nem sabe o que é um IP, quanto mais deixar ele escolher um).

Tem como saber qual dos IPs é o da rede local???

T+


Responder

Gostei + 0

22/07/2005

Massuda

Uma rede local só pode ter IPs das seguintes famílias...[list:56af1c11fc][*:56af1c11fc]10.0.0.0 a 10.255.255.255[*:56af1c11fc]172.16.0.0 a 172.31.255.255[*:56af1c11fc]192.168.0.0 a 192.168.255.255[/list:u:56af1c11fc]...além do localhost (127.0.0.1). Qualquer outro IP é público.

Não conheço jeito pronto de fazer isso... acho que você terá que montar uma função que teste se um IP está dentro da faixa de IPs de uma rede local e testar cada um dos IPs listados em GStack.LocalAddresses.

Só um aviso... é muito raro, mas já encontrei máquinas com mais de uma placa de rede trabalhando com IPs diferentes da rede local (exemplo, 10.1.x.x e 10.2.x.x), o que é perfeitamente válido.


Responder

Gostei + 0

22/07/2005

Marcelo.l

Valeu, Massuda.

Vou tentar.

Obrigado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar