如果获取本机IP地址?(100分)

  • 主题发起人 主题发起人 xuhao1
  • 开始时间 开始时间
X

xuhao1

Unregistered / Unconfirmed
GUEST, unregistred user!
不要局域网IP
 
在DOS下 输入IPConfig 就能看到了 不过好象你用代码实现
 
以前的好多相同帖子,你搜一下,一定有你要的,都很详细的,
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2399210
 
uses winsock;

//获取本机IP地址
Function GetLocateIp(InternetIp:Boolean):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;
IP: String;
begin
Screen.Cursor := crHourGlass;
try
WSAStartup($101, GInitData);
IP:='0.0.0.0';
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then
begin
ShowMessage(IP);
Result:=IP;
Exit;
end;
pPtr := PaPInAddr(phe^.h_addr_list);
if InternetIp then
begin
I := 0;
while pPtr^ <> nil do
begin
IP := inet_ntoa(pptr^^);
Inc(I);
end;
end
else
IP:=StrPas(inet_ntoa(pptr^[0]^));
WSACleanup;
Result:=IP;//如果上网则为上网ip否则是网卡ip
finally
Screen.Cursor := crDefault;
end;
end;
 
uses ..Sockets;
var
tp:TTcpClient;
strname,straddr:String;
begin
tp:=TTcpClient.Create(self);
strname:='你的電腦名是:'+tp.LocalHostName;
straddr:='你的ip是:'+tp.LocalHostAddr;
ShowMessage(strname+straddr);
...
end;
 
在win98下:开始-运行-winipcfg-找到你的网卡
在2000/xp下:开始-运行-cmd-ipconfig
 
感谢,但局域网上的电脑上网,不能获取到。
 
获得主机的IP
在窗体中添加一个idipwhatch控件,该控件在indymisc页中。
procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage(idipwatch1.LocalIP);
end;
 
发个指令到时间服务器。返回的数据包头里有
 
接受答案了.
 
后退
顶部