|
인디의 IPwatch 컴포넌트를 이용해도, 밑에 소스를 이용해도
카드가 가진 고유 아이피만을 보여주네요~~!! (맥 어드레스라고 하죠?)
저처럼 isp에서 할당해주는 아이피를 보여줄려면 어떻게 해야하죠?
어째서 랜카드의 아이피만을 보여주는지 모르겠네요.
저번에도 해결못해서 한번 다시 올려보네요.
예전에 이거 이용하신분은 원래부터 랜카드의 주소를 알고자 했던건가요?
IdIPWatch1->Active=true;
LocalAddress=IdIPWatch1->LocalIP();
또는,
#include<winsock.h>
AnsiString __fastcall GetLocalIP(void)
{
WSAData wsaData;
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0)
return "";
char slocal[256];
if (gethostname(slocal, 256) == SOCKET_ERROR)
return "";
hostent *hos = gethostbyname(slocal);
if(hos == NULL)
return "";
char *addr = *(hos->h_addr_list);
AnsiString LocalIP = AnsiString((unsigned char)addr[0]) + '.'
+ AnsiString((unsigned char)addr[1]) + '.'
+ AnsiString((unsigned char)addr[2]) + '.'
+ AnsiString((unsigned char)addr[3]);
WSACleanup();
return LocalIP;
}
|