IP адрес от програма
9 отговора
375 прегледа
Re: IP адрес от програма
uses
Winsock;
{...}
function getIPs: 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^ <> nil do
begin
Result.Add(inet_ntoa(pptr^^));
Inc(I);
end;
WSACleanup;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines := GetIps;
end;
Winsock;
{...}
function getIPs: 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^ <> nil do
begin
Result.Add(inet_ntoa(pptr^^));
Inc(I);
end;
WSACleanup;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines := GetIps;
end;
Re: IP адрес от програма
function GetLocalIP: String;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
HostName: Array[0..128] of Char;
GInitData: TWSAData;
begin
WSAStartup($101, GInitData);
if GetHostName(HostName, 128) = 0 then begin
HostEnt:= GetHostByName(HostName);
if HostEnt <> nil then begin
SockAddrIn.sin_addr.S_addr := LongInt(PLongInt(HostEnt^.h_addr_list^)^);
Result := inet_ntoa(SockAddrIn.sin_addr);
end else Result := '';
end else Result := '';
end;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
HostName: Array[0..128] of Char;
GInitData: TWSAData;
begin
WSAStartup($101, GInitData);
if GetHostName(HostName, 128) = 0 then begin
HostEnt:= GetHostByName(HostName);
if HostEnt <> nil then begin
SockAddrIn.sin_addr.S_addr := LongInt(PLongInt(HostEnt^.h_addr_list^)^);
Result := inet_ntoa(SockAddrIn.sin_addr);
end else Result := '';
end else Result := '';
end;
Re: IP адрес от програма
напоследък все повече се убеждавам, че голяма част от програмистите в българия са абсолютни юзъри.
ако можеш да ми обясниш за какво въобще ползваш TSockAddrIn параметъра или само да попрехвърлиш безсмислено LongInt стойност.
абе хора, престанете copy/paste да пишете софтуер. на клиентите им е почнало да им се драйфа от подобни юзъри дето им пробутват всевъзможен shit за софтуер.
ако можеш да ми обясниш за какво въобще ползваш TSockAddrIn параметъра или само да попрехвърлиш безсмислено LongInt стойност.
абе хора, престанете copy/paste да пишете софтуер. на клиентите им е почнало да им се драйфа от подобни юзъри дето им пробутват всевъзможен shit за софтуер.
Re: IP адрес от програма
е, тва е яко и идейно.
по-наблюдателните от вас ще забележат, че и тук има едно I което хич не се вързва в целия пейзаж. ако се опитате да компилирате показания код в Delphi 5, няма да тръгне. малко анализ показва, че някой се е изакал леко (или на мен ми е странно такова записване, може и да греша ползвам предимно C++).
та ако включим и 'висящото I' и вместо copy/paste юзърски код решим да помислим малко преди да пишем програми, това би трябвало да сработи:
function getIPs: 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^) <> nil do
begin
Result.Add(inet_ntoa(pPtr^^));
Inc(I);
end;
WSACleanup;
end;
представяте ли си, сега дори и I-то си има смисъл.
но примера е идеен! супер! благодаря на този, който го е постнал (откъдето и да го е изкопирал, макар и неграмотно).
по-наблюдателните от вас ще забележат, че и тук има едно I което хич не се вързва в целия пейзаж. ако се опитате да компилирате показания код в Delphi 5, няма да тръгне. малко анализ показва, че някой се е изакал леко (или на мен ми е странно такова записване, може и да греша ползвам предимно C++).
та ако включим и 'висящото I' и вместо copy/paste юзърски код решим да помислим малко преди да пишем програми, това би трябвало да сработи:
function getIPs: 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^) <> nil do
begin
Result.Add(inet_ntoa(pPtr^^));
Inc(I);
end;
WSACleanup;
end;
представяте ли си, сега дори и I-то си има смисъл.
но примера е идеен! супер! благодаря на този, който го е постнал (откъдето и да го е изкопирал, макар и неграмотно).
Re: IP адрес от програма
упс. май виновниците са ДИРник Бай-Ганю (известни най-вече като дир.бг).
извинявам се но като, че ли техните програмисти серат (обществен факт).
ако този код долу не се копира с [ i ] в скобите, значи лайнцата са програминг-лузърите и пръц-админите от ДИРник-а (бел.пр. дирник - задник).
function getIPs: 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^) <> nil do
begin
Result.Add(inet_ntoa(pPtr^^));
Inc(I);
end;
WSACleanup;
end;
извинявам се но като, че ли техните програмисти серат (обществен факт).
ако този код долу не се копира с [ i ] в скобите, значи лайнцата са програминг-лузърите и пръц-админите от ДИРник-а (бел.пр. дирник - задник).
function getIPs: 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^) <> nil do
begin
Result.Add(inet_ntoa(pPtr^^));
Inc(I);
end;
WSACleanup;
end;
Re: IP адрес от програма
не става. алооо. ДИРниците, как да копираме код от Delphi без да се изака вашият скрипт върху него ?
function getIPs: 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;
function getIPs: 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;
Re: IP адрес от програма
@BashBabait, щом си такъв голяма специалист, вземи и напиши правилния код вместо да се заяждаш и да се правиш на "интересен". От такива "критици" като теб няма смисъл.
Човека е задал въпрос и иска да получи отговор, а как да се научи, като ти не споделяш знанията си, а само критикуваш.
Човека е задал въпрос и иска да получи отговор, а как да се научи, като ти не споделяш знанията си, а само критикуваш.
Re: IP адрес от програма
Ми то не е лошо и да се чете като се пише...
"За да участвате в клуба попълнете следващата форма. HTML е забранен. Можете да използвате МЕТА ЕЗИК. Кликнете Т У К. , за да разберете подробно как. "
Да си забелязал тага PRE? Бабаитчето на батко - по долу ревеш да не се Copy/Paste-ва ...
чети и дишай по-леко
"За да участвате в клуба попълнете следващата форма. HTML е забранен. Можете да използвате МЕТА ЕЗИК. Кликнете Т У К. , за да разберете подробно как. "
Да си забелязал тага PRE? Бабаитчето на батко - по долу ревеш да не се Copy/Paste-ва ...
чети и дишай по-леко