ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Скан ip, на открытый порт[Delphi] |

11.01.2010, 21:22
|
|
Познающий
Регистрация: 07.11.2009
Сообщений: 36
Провел на форуме: 77411
Репутация:
0
|
|
Скан ip, на открытый порт[Delphi]
Народ, как при нажатии кнопки проверить ip на определенный порт, не используя не каких компонентов, если открыть, то записать в файл txt ??
Последний раз редактировалось OPF_Nik; 11.01.2010 в 21:25..
|
|
|

11.01.2010, 21:44
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
Сейчас делфи нету но попытаюсь написать (так что подправьте меня если я где то сделал ошибку)
Код в создании формы:
Код:
var
ws:wsadata;
begin
wsastartup($101, ws);
end;
Процедура:
Код:
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
(если не разберешься или будет ошибка/ошибки -> отпишись, помогу)
Последний раз редактировалось wolmer; 12.01.2010 в 11:25..
|
|
|

11.01.2010, 23:23
|
|
Познающий
Регистрация: 07.11.2009
Сообщений: 36
Провел на форуме: 77411
Репутация:
0
|
|
wolmer спс
|
|
|

11.01.2010, 23:27
|
|
Познающий
Регистрация: 07.11.2009
Сообщений: 36
Провел на форуме: 77411
Репутация:
0
|
|
Код:
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
|
|
|

11.01.2010, 23:31
|
|
Познающий
Регистрация: 02.12.2009
Сообщений: 37
Провел на форуме: 195146
Репутация:
15
|
|
ServerInfo.sin_family := AF_INET;
ServerInfo.sin_addr.s_addr := inet_addr('127.0.0.1');
ServerInfo.sin_port := htons(80);
|
|
|

11.01.2010, 23:38
|
|
Познающий
Регистрация: 07.11.2009
Сообщений: 36
Провел на форуме: 77411
Репутация:
0
|
|
Прога работает, но всегда показывает, что порт закрыт
|
|
|

11.01.2010, 23:40
|
|
Познающий
Регистрация: 07.11.2009
Сообщений: 36
Провел на форуме: 77411
Репутация:
0
|
|
cheater_man
Для того же, зачем тебе С++
|
|
|

12.01.2010, 15:23
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
wolder ptr ты забыл походу от SOCKADDR
чем могу... ибо не по делфе я...
Код:
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;
}
__________________
 
snow white world wide
Последний раз редактировалось sn0w; 12.01.2010 в 15:33..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|