Ip da rede
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.
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
Curtidas 0
Respostas
Massuda
22/07/2005
Dê uma olhada na lista de strings retornada por GStack.LocalAddresses (note que não é a mesma coisa que GStack.LocalAddress).
GOSTEI 0
Marcelo.l
22/07/2005
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+
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+
GOSTEI 0
Massuda
22/07/2005
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.
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.
GOSTEI 0
Marcelo.l
22/07/2005
Valeu, Massuda.
Vou tentar.
Obrigado.
Vou tentar.
Obrigado.
GOSTEI 0