如何获得本地IP,将IP存入edit?(30分)

W

wsmp3

Unregistered / Unconfirmed
GUEST, unregistred user!
如何获得本地IP,将IP存入edit?
 
uses idipwatch;

Function GetLocalIP():string;
var
ipwatch :TIdipwatch;
begin
ipwatch := Tidipwatch.Create(nil);
Result := ipwatch.LocalIP;
ipwatch.Free;
end;

edit1.text :=GetLocalIP;
 
uses Winsock;
function LocalIP : string;
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 := '';
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:=StrPas(inet_ntoa(pptr^^));
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

begin

Exit;

end;

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;
 
多人接受答案了。
 
没有那么复杂的:只要用一个控件就行了
Edit.text:=NMHTTP.LocalIP;就行了,
这个控件NMHTTP就是在FastNET组里面
 
顶部