Conseguir local ip ethernet

Iniciado por patilanz, 10 Enero 2015, 17:03 PM

0 Miembros y 1 Visitante están viendo este tema.

patilanz

Hola estoy intentando conseguir el local ip de mi red con la que estoy conectado para hacer una petición arp. Lo intento con GetAdaptersInfo o GetAdaptersAddresses  o gethostbyname.
Pero ninguno me sirve. Bueno consigo la ip pero no se la manera de saber si es la ip correcta. Si lo imprimo por la descripción pero dependiendo del pc sera diferente.

Saludos

engel lex

como que no sabes si es la correcta?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MeCraniDOS

Cita de: patilanz en 10 Enero 2015, 17:03 PM
Hola estoy intentando conseguir el local ip de mi red con la que estoy conectado para hacer una petición arp. Lo intento con GetAdaptersInfo o GetAdaptersAddresses  o gethostbyname.
Pero ninguno me sirve. Bueno consigo la ip pero no se la manera de saber si es la ip correcta. Si lo imprimo por la descripción pero dependiendo del pc sera diferente.

Saludos

Pon code y te podremos ayudar,

Saludos
"La física es el sistema operativo del Universo"
     -- Steven R Garman

patilanz

Con GetAdaptersAddresses no se obtener la ip:

Código (cpp) [Seleccionar]
ULONG family = AF_UNSPEC;
IP_ADAPTER_ADDRESSES * adresses = 0;
ULONG size;
int ret = GetAdaptersAddresses(family, 0, 0, adresses, &size);
if (ret != ERROR_BUFFER_OVERFLOW){
cout << "Error";
exit(1);
}
adresses = new IP_ADAPTER_ADDRESSES[size];
ret = GetAdaptersAddresses(family, 0, 0, adresses, &size);
if (ret == NO_ERROR){
IP_ADAPTER_ADDRESSES * adress = adresses;
while (adress){
cout << adress->Description << endl;
//Como obtengo la ip?
adress = adress->Next;
}
}


Con IP_ADAPTER_INFO no se cual de todas las ipes es correcta:

Código (cpp) [Seleccionar]
IP_ADAPTER_INFO *info = 0;
ULONG size;
int ret = GetAdaptersInfo(info, &size);
if (ret != ERROR_BUFFER_OVERFLOW){
cout << "Error";
exit(1);
}
info = new IP_ADAPTER_INFO[size];
GetAdaptersInfo(info, &size);
IP_ADAPTER_INFO *adapter = info;
while (adapter){
cout << adapter->IpAddressList.IpAddress.String << endl;
adapter = adapter->Next;
}


La ip que busco es 192.168.1.6 que es la primera pero no creo que en todos los pc sera la primera.

Saludos

engel lex

cada adaptador tiene una descripción, puede acceder a ellas?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

patilanz

Si pero son así:

Citar192.168.1.6
Conexi¾n de red Gigabit Intel(R) 82578DC

192.168.56.1
VirtualBox Host-Only Ethernet Adapter

192.168.134.1
VMware Virtual Ethernet Adapter for VMnet

192.168.179.1
VMware Virtual Ethernet Adapter for VMnet

25.118.200.151
LogMeIn Hamachi Virtual Ethernet Adapter

Todos están con ethernet.

engel lex

pero puedes confiar en "conexión de red" que es el texto base normalmente en windows... alguna otras información que puedas sacar?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

patilanz

Cita de: engel lex en 11 Enero 2015, 01:42 AMalguna otras información que puedas sacar?

Bueno todo de http://msdn.microsoft.com/en-us/library/windows/desktop/aa366062
Y con IP_ADAPTER_ADDRESSES como obtengo la ip ?

engel lex

no estoy en windows XD y en el windows no tengo instalado nada de eso jejeje
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.