Шаг 27 - Поддержка сокетов MFC IP адрес удаленного компьютера

После связи мы можем спокойно получить 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");

Смотрим результат:

gif/27_1.gif (2653 b)

Вот есть он. Подобный способом можно легко определить 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");

gif/27_2.gif (3856 b)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 16.11.2001