如何获取本机的IP 要在INTERNET上的那个
解决方案 »
- ado的 Unique Table设置问题
- 关于themes.dcu找不到的问题
- 如何禁止应用程序重复启动?
- 请问:广州斯凯文公司如何?
- 各位大侠帮帮我啊!!!!
- Delphi非.net版本中OOP使用情况调查.继续高分相赠!
- 我该怎么办?愁死了!!
- 请问Delphi XE2 (注意是FireMonkey HD 窗体,不是XE2中的VCL窗体)如何实现无边框窗体的鼠标拖动?急!急!急!急!请高手给答案!
- 在一台几器可以实现c/s的程序调试吗?
- dword a; a= -1;在delphi5中不能通过编译,是怎么回事,大家帮帮我。
- DLL的声明很着急
- GetScrollPos函数为何总是返回0?
...............
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
result:='';
wsastartup($101,ginitdata);
try
gethostname(buffer,sizeof(buffer));
phe:=gethostbyname(buffer);
if phe<>nil then
begin
pptr:=papinaddr(phe^.h_addr_list);
I:=0;
while pptr^[i]<>nil do
begin
result:=strpas(inet_ntoa(pptr^[i]^));
inc(i);
end;
end;
finally
wsacleanup;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
edtIP.Text:=localIP;
end;
在TForm1.FormCreate(Sender: TObject)中加入以下代码:statusbar1.Panels[1].Text:=IdIPWatch1.LocalIP;
若IdIPWatch1的HistoryEnabled的属性设为True,则会在程序退出时,自动生成一个文件(文件名为HistoryFileName属性设定的值),记录当前的IP地址。
谢谢你的回复,可你给的那个函数的结果怎么和QQ上的结果不一样呢 你查的是局域网的么 我要INTERNET上的
{=================================================================
功 能: 返回本机的局域网Ip地址
参 数: 无
返回值: 成功: True, 并填充LocalIp 失败: False
备 注:
版 本:
1.0 2002/10/02 21:05:00
=================================================================}
function GetLocalIP(var LocalIp: string): Boolean;
var
HostEnt: PHostEnt;
Ip: string;
addr: pchar;
Buffer: array [0..63] of char;
GInitData: TWSADATA;
begin
Result := False;
try
WSAStartup(2, GInitData);
GetHostName(Buffer, SizeOf(Buffer));
HostEnt := GetHostByName(buffer);
if HostEnt = nil then Exit;
addr := HostEnt^.h_addr_list^;
ip := Format('%d.%d.%d.%d', [byte(addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
LocalIp := Ip;
Result := True;
finally
WSACleanup;
end;
end;