ďťż

Ładny brzuch

Jak programowo sprawdzić IP komputera, na którym działa program?

gg 5286720



Powinno dzialac:)

#include <winsock2.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char buff[100];
hostent *lphe;
WSADATA WSAData;

WSAStartup(MAKEWORD(2, 0), &WSAData);

gethostname(buff, 100);
lphe = gethostbyname(buff);
Label1->Caption = AnsiString(inet_ntoa(*(in_addr*)*lphe->h_addr_list));
WSACleanup();
}

GG: 4596137

Co chcesz sie włamywać do innych??:?:?:?:?:?:?:?:?:?:?:?8)

gg - 2331878
mail : panu@op.pl
Panu

A jak to sprawdzić w Delphi?

----------------
Kamil Wajda
GG:4498354



cytat:Kamil Wajda napisał:

A jak to sprawdzić w Delphi?

Skorzystj z biblioteki Winsock w której znajduj± się definicje funkcji WinAPI służ±ce obsłudze sieci :

uses ......, Winsock, .......;

Następnie napisz funkcję typu TStrings, która w rezultacie poda listę numerów IP przypisanych komputerowi. Przypuszczam, iż mało jest komputerów maj±cych więcej niż 10 numerów IP. Jeżeli jednak zajdziesz taka potrzeba, można zwiększyć rozmiar tablicy TaPInAddr do odpowiadaj±cej ci wielko¶ci :

function numeryIP : Tstrings;
type
TaPInAddr = array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: array[0..63] of Char;
I: Integer;
GInitData: TWSAData;
begin
WSAStartup($101, GInitData);
Result := TstringList.Create;
Result.Clear;
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then Exit;
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^[I] <> nil do
begin
Result.Add(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;

PS. Nie ja napisalem ten kod:)

GG: 4596137

cytat:Panu napisał:

Co chcesz sie włamywać do innych??:?:?:?:?:?:?:?:?:?:?:?8)

gg - 2331878
mail : panu@op.pl
Panu

Nie - po prostu jest mi to potrzebne, ale do bardziej szlachetnych celów. Dziękuję za pomoc tym, którzy ją okazali ;)

gg 5286720

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •