Народ, как при нажатии кнопки проверить ip на определенный порт, не используя не каких компонентов, если открыть, то записать в файл txt ??
Сейчас делфи нету но попытаюсь написать (так что подправьте меня если я где то сделал ошибку) Код в создании формы: Code: var ws:wsadata; begin wsastartup($101, ws); end; Процедура: Code: var sock: tsocket; ServerInfo: sockaddr_in; begin sock:=socket(af_inet, sock_stream, 0); ServerInfo.sin_family := AF_INET; ServerInfo.sin_addr.s_addr := inet_addr('188.40.76.205'); ServerInfo.sin_port := htons(80); if connect(sock, ServerInfo, sizeof(serverinfo))=0 then begin ShowMessage('Порт открыт'); //Тут можно написать запись в файл end else begin ShowMessage('Порт закрыт'); end; end; Ах да и в uses пропиши -> winsock (если не разберешься или будет ошибка/ошибки -> отпишись, помогу)
Code: ServerInfo.sin_family = AF_INET; ServerInfo.sin_addr.s_addr = inet_addr('127.0.0.1'); ServerInfo.sin_port = htons(80); Тут ошибку показывает: [Error] Unit1.pas(32): ':=' expected but ':' found
ServerInfo.sin_family := AF_INET; ServerInfo.sin_addr.s_addr := inet_addr('127.0.0.1'); ServerInfo.sin_port := htons(80);
wolder ptr ты забыл походу от SOCKADDR чем могу... ибо не по делфе я... Code: BOOL IsPortOpen(char *hostip, WORD dport) { WSADATA wsd; WSAStartup(0x202, &wsd); SOCKET sck; SOCKADDR_IN addr; int rc; addr.sin_family = AF_INET; addr.sin_port = htons(dport); addr.sin_addr.S_un.S_addr = inet_addr(hostip); sck = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); rc = connect(sck, (LPSOCKADDR)&addr, sizeof(addr)); if(rc == 0){ closesocket(sck); return TRUE; } return FALSE; }