FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
OPtener IP de la PC en C++
Saludos
Quisiera saber de que forma podria optener el ip de la PC en la que estoy trabajando en C++ Builder. |
#2
|
|||
|
|||
en la biblioteca <netdb.h> exite una funcion cuya declaracion es la siguiente.
Código:
Código: struct hostent *gethostbyname(char *name); aqui tienes un ejemplo de como usarla: Código:
Código: #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> struct sockaddr whereto; struct hostent *hp; struct sockaddr_in *to; char *target; char *hostname; memset(&whereto, 0, sizeof(struct sockaddr)); to = (struct sockaddr_in *)&whereto; to->sin_family = AF_INET; to->sin_addr.s_addr = inet_addr(target); if (to->sin_addr.s_addr != -1) hostname = target; else { hp = gethostbyname(target); if (!hp) printf("host desconocido%s\n", target); else { to->sin_family = hp->h_addrtype; memcpy(&(to->sin_addr.s_addr), hp->h_addr, hp->h_length); hostname = hp->h_name; printf("gethostbyname ejecutado correctamente\n"); } }
__________________
Gracias a todos por apoyarme ^^ |
#3
|
|||
|
|||
Gracias por contestar
Ayer estuve probando ese ejemplo pero me da problemas en: #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> [C++ Error] Unit1.cpp(8): E2209 Unable to open include file 'sys/socket.h' [C++ Error] Unit1.cpp(9): E2209 Unable to open include file 'netdb.h' [C++ Error] Unit1.cpp(25): E2450 Undefined structure 'sockaddr' [C++ Error] Unit1.cpp(25): E2449 Size of 'whereto' is unknown or zero [C++ Error] Unit1.cpp(25): E2450 Undefined structure 'sockaddr' [C++ Error] Unit1.cpp(31): E2450 Undefined structure 'sockaddr' |
#4
|
||||
|
||||
Código:
#include <winsock2.h> String GetCurrentIP() { WSADATA Wsa; char name[255]; AnsiString ip; PHOSTENT hostinfo; if(WSAStartup(MAKEWORD(2,2),&Wsa) == 0 ){ if(gethostname ( name, sizeof(name)) == 0){ if((hostinfo = gethostbyname(name)) != NULL){ ip = inet_ntoa (*(in_addr *)*hostinfo->h_addr_list); } } WSACleanup( ); } return ip; } Ejemplo de uso: Código:
Label1->Caption = GetCurrentIP(); Saludos. |
#5
|
|||
|
|||
Excelente!!, gracias!.
Una ultima cosa,seria posible detectar otro numero ip de otra tarjeta q de red que este puesta en la misma PC? |
#6
|
||||
|
||||
Código:
//--------------------------------------------------------------------------- #include <windows.h> #include <winsock2.h> #include <Iphlpapi.h> #include <stdio.h> #include <conio.h> #pragma comment(lib, "iphlpapi.lib") #pragma hdrstop //--------------------------------------------------------------------------- void GetIPAddress(void) { PIP_ADAPTER_INFO AI, pAI; DWORD AILen; GetAdaptersInfo(0, &AILen); pAI = AI = (PIP_ADAPTER_INFO) new BYTE[AILen]; if(!GetAdaptersInfo(pAI, &AILen)){ do{ printf("%s:\n", pAI->Description, pAI->Address[0]); printf("\tMAC: \t\t%.2X-%.2X-%.2X-%.2X-%.2X-%.2X\n", pAI->Address[0], pAI->Address[1], pAI->Address[2], pAI->Address[3], pAI->Address[4], pAI->Address[5]); printf("\tIP Address: \t%s\n\n", pAI->IpAddressList.IpAddress.String); pAI = pAI->Next; } while(pAI); } delete [] AI; getch(); } int main() { GetIPAddress(); return 0; } Un detalle, para importar la API GetAdaptersInfo de la librería iphlpapi.dll en Builder 5 o lo haces dinámicamente o de forma estática como yo. iphlpapi.lib la creas con la utilidad IMPLIB que viene con Builder. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
optener el listado de tablas | Ryu | Conexión con bases de datos | 2 | 12-06-2006 20:29:11 |
optener porciento al revez.. | sakuragi | Varios | 5 | 04-01-2006 00:39:11 |
optener valor de un formulario a otro en otra pagina.php | sakuragi | PHP | 5 | 16-11-2005 18:22:58 |
Se puede optener un listado de direcciones a partir de una busqueda? | Alfredo | Internet | 3 | 19-10-2005 17:10:31 |
Optener Nro Telefonico | Danyeru | Varios | 11 | 29-03-2004 11:07:21 |
|