Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать IP адрес


Николас ©   (2006-05-27 01:43:00) 

Как узнать IP адрес клиента в сервере TCP (на WinSock) зная TSocket при событии FD_Read?


Verg   (2006-05-29 21:20:00) [1]

см. getpeername(...)


Николас   (2006-05-29 17:21:00) [2]

Tsmar странно... addr.sin_addr.S_addr  = 0 а lenaddr = 16 после выполнения... почему так? в Accept() нормальная структура получается... а тут пустая..


Николас   (2006-05-29 16:31:00) [3]

Tsmar спасибо, а как теперь преобразовать это число в символьный IP? :)


Tsmar   (2006-05-28 13:42:00) [4]

int recvfrom (
   SOCKET s,  
   char FAR* buf,  
   int len,    
   int flags,  
   struct sockaddr FAR* from,  
   int FAR* fromlen    
  );
юзаешь так

var
addr:TSockAddr;
lenaddr:integer;
...
lenaddr:=SizeOf(addr);
retcount:=recvfrom(Sock,buf,MAX_BUF_LEN,0,addr,lenaddr);
IP:=htonl(addr.sin_addr.S_addr);   <- вот и IP


Delphi_is_cool   (2006-05-27 21:04:00) [5]

...Нету ... )


Николас   (2006-05-27 14:48:00) [6]

неужели нет другова способа? Должен быть :)


Delphi_is_cool   (2006-05-27 10:07:00) [7]

Я думаю что никак ... обычно это делается при подключении клиента(FD_ACCEPT) ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо