![]() |
|
#1
|
||||
|
||||
![]() Возникла необходимость пропинговать некоторые серверы на определенном порте. Сейчас юзаю код как во вложении, но он всегда возвращает ошибку. К тому же не работает преобразование некоторых хостов (например eu.logon.worldofwarcraft.com) в ip:
Код:
uses ..., winsock; ... function HostToIP(Name: string; var Ip: string): Boolean; var wsdata : TWSAData; hostName : PAnsiChar; hostEnt : PHostEnt; addr : PAnsiChar; begin WSAStartup ($0101, wsdata); try getmem(hostName, sizeof(Name)); StrPCopy(hostName, Name); hostEnt := gethostbyname (hostName); if Assigned (hostEnt) then if Assigned (hostEnt^.h_addr_list) then begin addr := hostEnt^.h_addr_list^; if Assigned (addr) then begin IP := Format ('%d.%d.%d.%d', [byte (addr [0]), byte (addr [1]), byte (addr [2]), byte (addr [3])]); Result := True; end else Result := False; end else Result := False else begin Result := False; end; finally WSACleanup; end end; РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |