После связи мы можем спокойно получить IP компьютера, с которым связались. Функция для этого есть:
BOOL GetPeerName( CString& rPeerAddress, UINT& rPeerPort );
Пробуем:
if (sa.Connect("pop.yandex.ru",25)) { CString address; UINT port; sa.GetPeerName(address,port); AfxMessageBox(address); } else AfxMessageBox("Error Connect");
Смотрим результат:
Вот есть он. Подобный способом можно легко определить IP по имени только нужно порт угадать. А просто все: 80 - HTTP (странички WEB), 25 - SMTP (почта), 139 - NetBios. Вообщем можно. Есть одно но, что нужно соединение с интернетом, но без него не как. Сервера, которые возвращают по имени адрес находятся в интернете. При желании можно получить и свой IP в данный момент:
if (sa.Connect("pop.yandex.ru",25)) { CString address; UINT port; CString myaddress; sa.GetPeerName(address,port); sa.GetSockName(myaddress,port); AfxMessageBox(address + " " + myaddress); } else AfxMessageBox("Error Connect");