Для этого служат функции Windows Sockets API.
Вот ответ из Win32 API FAQ by Serge Andyk, asvzzz@netcity.ru
14)--------------------------------------------------------------------------
Q> Как узнать ip адрес(а) машины (в текстовом виде)? A> Кусок исходника от плугина к BackOrifice:
//Lok up this host info via supplied name
lphostent = gethostbyname(szHostName);
if (lphostent == NULL)
return;
//Retreive first entry (might have multiple connects)
do
{
iterations++;
ppIpNO = (u_long *)lphostent->h_addr_list;
if (ppIpNO+i == NULL)
return;
pIpNO = ((u_long *)*(ppIpNO+i));
if (pIpNO == NULL)
return;
//convert back to host order, since SOCKADDR_IN expects that
//MessageBox(NULL,"z","x",MB_OK);
ipHO = ntohl(*pIpNO);