Pomosht
8 отговора
455 прегледа
Re: Pomosht
Има доста уточнения които трябва да направиш, преди да зададеш подобен въпрос
1. За кои портове става дума - TCP, UDP, входно-изходните портове на процесора, COM, LPT и т.н.
2. Като уточниш точка 1, следва да кажеш какво разбираш да "сканираш". В представите ми се върти че искаш да симулираш ping на TCP порт, за да разбереш дали е активен. Дори и да е така, редно е ти да пишеш ферманите с обяснения какво искаш, а не да ти тегля думите с ченгел
3. Във правилата на форума е посочено как е желателно да се задават въпроси. Представи се че аз те срещна и попитам: "В колко?".
4. Ще ти подшепна на ухо, че некоректно и неинтелигентно зададен въпрос първо създава лошо мнение за питащия, а после влече и съответните безполезни и не много приятни отговори
чети и дишай по-леко
1. За кои портове става дума - TCP, UDP, входно-изходните портове на процесора, COM, LPT и т.н.
2. Като уточниш точка 1, следва да кажеш какво разбираш да "сканираш". В представите ми се върти че искаш да симулираш ping на TCP порт, за да разбереш дали е активен. Дори и да е така, редно е ти да пишеш ферманите с обяснения какво искаш, а не да ти тегля думите с ченгел
3. Във правилата на форума е посочено как е желателно да се задават въпроси. Представи се че аз те срещна и попитам: "В колко?".
4. Ще ти подшепна на ухо, че некоректно и неинтелигентно зададен въпрос първо създава лошо мнение за питащия, а после влече и съответните безполезни и не много приятни отговори
чети и дишай по-леко
Re: Pomosht
Ако е за TCP един приятел има на сайта си, със сорс, но на С.
Пробвал съм я да си проверявам firewall-a.
[линк]
Пробвал съм я да си проверявам firewall-a.
[линк]
Re: Pomosht
1.Da scanira TCP portove.
2.Da proveria dali sa activni.
Prosto mi triabva source coda davida na kakuv princip raboti programata.
Blagodaria za zabeleshkite, sledvashtia put kogato poiskam pomosht shte pisha po podrobno.
2.Da proveria dali sa activni.
Prosto mi triabva source coda davida na kakuv princip raboti programata.
Blagodaria za zabeleshkite, sledvashtia put kogato poiskam pomosht shte pisha po podrobno.
Re: Pomosht
Като начало може да се ползва прост ping. Код за него има в нета, но понеже не е много лесно да се намери, ще сложа и тука:
unit Ping;
interface
uses
Windows, SysUtils, Classes;
type
TSunB = packed record
s_b1, s_b2, s_b3, s_b4: byte;
end;
TSunW = packed record
s_w1, s_w2: word;
end;
PIPAddr = ^TIPAddr;
TIPAddr = record
case integer of
0: (S_un_b: TSunB);
1: (S_un_w: TSunW);
2: (S_addr: longword);
end;
IPAddr = TIPAddr;
function IcmpCreateFile : THandle; stdcall; external 'icmp.dll';
function IcmpCloseHandle (icmpHandle : THandle) : boolean; stdcall;
external 'icmp.dll'
function IcmpSendEcho (IcmpHandle : THandle; DestinationAddress : IPAddr;
RequestData : Pointer; RequestSize : Smallint;
RequestOptions : pointer;
ReplyBuffer : Pointer;
ReplySize : DWORD;
Timeout : DWORD) : DWORD; stdcall; external 'icmp.dll';
function Ping(InetAddress : string) : boolean;
implementation
uses
WinSock;
function Fetch(var AInput: string;
const ADelim: string = ' ';
const ADelete: Boolean = true)
: string;
var
iPos: Integer;
begin
if ADelim = #0 then begin
// AnsiPos does not work with #0
iPos := Pos(ADelim, AInput);
end else begin
iPos := Pos(ADelim, AInput);
end;
if iPos = 0 then begin
Result := AInput;
if ADelete then begin
AInput := '';
end;
end else begin
result := Copy(AInput, 1, iPos - 1);
if ADelete then begin
Delete(AInput, 1, iPos + Length(ADelim) - 1);
end;
end;
end;
procedure TranslateStringToTInAddr(AIP: string; var AInAddr);
var
phe: PHostEnt;
pac: PChar;
GInitData: TWSAData;
begin
WSAStartup($101, GInitData);
try
phe := GetHostByName(PChar(AIP));
if Assigned(phe) then
begin
pac := phe^.h_addr_list^;
if Assigned(pac) then
begin
with TIPAddr(AInAddr).S_un_b do begin
s_b1 := Byte(pac[0]);
s_b2 := Byte(pac[1]);
s_b3 := Byte(pac[2]);
s_b4 := Byte(pac[3]);
end;
end
else
begin
raise Exception.Create('Error getting IP from HostName');
end;
end
else
begin
raise Exception.Create('Error getting HostName');
end;
except
FillChar(AInAddr, SizeOf(AInAddr), #0);
end;
WSACleanup;
end;
function Ping(InetAddress : string) : boolean;
var
Handle : THandle;
InAddr : IPAddr;
DW : DWORD;
rep : array[1..128] of byte;
begin
result := false;
Handle := IcmpCreateFile;
if Handle = INVALID_HANDLE_VALUE then
Exit;
TranslateStringToTInAddr(InetAddress, InAddr);
DW := IcmpSendEcho(Handle, InAddr, nil, 0, nil, @rep, 128, 0);
Result := (DW <> 0);
IcmpCloseHandle(Handle);
end;
end.
Re: Pomosht
Само не разбрах как с ping да разбера дали нещо ми слуша на порт 12345 на адрес 123.123.123.123 например? Щото като гледам човека точно това си пита...
Ааааа... Забравих. Искам освен това да е на UDP порт 12345...
Ааааа... Забравих. Искам освен това да е на UDP порт 12345...
Редактирано от andrew_nikoloff на
Re: Pomosht
Това го има в about.com дано ти свърши работа като отправна точка. [линк]