怎样取得本机的IP地址?

delphi_fan 2000-03-17 04:12:00
...全文
256 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sirius 2000-03-18
  • 打赏
  • 举报
回复
不写程序也行:
ping selfname
ghostlee 2000-03-18
  • 打赏
  • 举报
回复
如果不是非要写程序,winipcfg也可以.
如果仅是为了要ip,在程序中调用它也可以嘛
Wingsun 2000-03-17
  • 打赏
  • 举报
回复
to ljm:
能给我一份吗?关于获取isp分配的IP地址
mail:sunwing@163.net
E 2000-03-17
  • 打赏
  • 举报
回复
同意Lin的说法。
To ljm:
然而ISP分配的IP地址如何得到?
Please Mail to:ahbao@ynmail.com
Lin 2000-03-17
  • 打赏
  • 举报
回复
试试下面的函数:

uses ...,WinSock;
...

function GetLocalHostIP: String;//取得本机的IP地址
var IP: String
ia: in_addr;
begin
SetLength(IP, 255);
gethostname(PChar(IP), Length(IP));
phs := gethostbyname(PChar(IP));
if phs <> nil then
begin
CopyMemory(@ia.S_addr, phs^.h_addr^, SizeOf(ia.S_addr));
StrCopy(PChar(IP), inet_ntoa(ia));
end;
Result := IP;
end;
Firing_Sky 2000-03-17
  • 打赏
  • 举报
回复
什么嘛!用GetHostName不就行了?
ljm 2000-03-17
  • 打赏
  • 举报
回复
我有VC++获得本机IP地址的原码,如果你需要可发EMAIL给我. 我认为原理应该是一样的.
IP地址有时有两个,一个为本机网卡的IP地址,另一个为ISP分配的IP地址,你需要哪一个IP地址?
kxy 2000-03-17
  • 打赏
  • 举报
回复
procedure TForm1.ButtonIPClick(Sender: TObject);
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);
Exit;
end;
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^[I] <> nil do
begin
IP := inet_ntoa(pptr^[I]^);
Inc(I);
end;
WSACleanup;
ShowMessage(IP);
finally
Screen.Cursor := crDefault;
end;
end;
Jackzhu 2000-03-17
  • 打赏
  • 举报
回复
类似GetAddressByName的函数

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧