如何用API获得本机的IP地址,如果本机有多个IP地址,又怎样获得?

dongdong 2000-03-27 12:34:00
使用WINSOCK控件可以获得本机的IP地址,但如果本机有多个IP地址,怎样获得?
...全文
341 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
91724关注!
sunsetyang 2000-03-27
  • 打赏
  • 举报
回复
具体的:
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);
GetHostName(Buffer, SizeOf(Buffer));
LocalHost:=strpas(buffer);
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
LocalAddress:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
Lin 2000-03-27
  • 打赏
  • 举报
回复
1、用gethostname得到主机DNS名称;
2、用gethostbyname可以得到主机IP地址。注意其返回的数据结构,声明如下:
struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};
h_addr_list其实是一个联合,你用过C/C++就明白了,它既可以是h_addr,又可以是一个h_addr_list,指向一系列IP...。
RealTop 2000-03-27
  • 打赏
  • 举报
回复
用WinAPI可以做到取回机器中有多少块网卡?
及各网卡的相关信息!

1,485

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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