社区
网络通信/分布式开发
帖子详情
如何取本机的IP地址?先谢了。
cathy01
2003-01-07 09:48:39
如何取本机的IP地址?
...全文
140
4
打赏
收藏
如何取本机的IP地址?先谢了。
如何取本机的IP地址?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
joky1981
2003-01-07
打赏
举报
回复
获取IP地址的方法很多,如下:
function GetComputerName: string;
var
Size: DWord;
begin
Size := MAX_COMPUTERNAME_LENGTH+1;
SetLength(Result, Size);
Windows.GetComputerName(PChar(Result), Size);
SetLength(Result, StrLen(PChar(Result)));
end;
function GetHostAddress: string;
var
wd: TWSAData;
phe: PHostEnt;
begin
if 0 <> WSAStartup(MakeWord(2, 0), wd) then
raise Exception.Create('初始化 WinSock 失败!')
else
try
SetLength(Result, 255);
if 0 <> gethostname(PChar(Result), 255) then
raise Exception.Create('无法取得本计算机名称!');
SetLength(Result, StrLen(PChar(Result)));
phe := gethostbyname(PChar(Result));
if nil = phe then
raise Exception.Create('无法解析本计算机名称到IP地址!');
//修改此处代码可适用于多个IP情况
Result := inet_ntoa(PInAddr(phe.h_addr^)^);
finally
WSACleanup;
end;
end;
你要是嫌上面的麻烦,可以直接放一个Fastnet组件,如TNMDayTime,取其LocalIP属性。
NMDT: TNMDayTime;
.........
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('本机的IP地址是:'+NMDT.localIP);
end;
end.
jjp
2003-01-07
打赏
举报
回复
用fastnet下的TNMftp控件,
nmftp1.localip即可
sjdf
2003-01-07
打赏
举报
回复
下面这个是我用c写的,希望对你有帮助。
char* GetLocalIP()
{
WSADATA wsadata;
char szHostName[128+1] = "\0";
hostent *phe;
in_addr myip;
if (WSAStartup(MAKEWORD(2,0), &wsadata) != 0)
{
return NULL;
}
if(gethostname(szHostName, 128 ) == 0)
{
phe = gethostbyname(szHostName);
memcpy((char*)&myip,phe->h_addr_list[0],4);
WSACleanup();
return (inet_ntoa(myip));
}
else
{
WSACleanup();
return NULL;
}
}
灯草拐杖
2003-01-07
打赏
举报
回复
给你一个代码
var
Form1: TForm1;
FComputerName : String;//用来存贮本机的计算机名称
FComputerIP : String; //用来存贮本机的计算机IP地址
implementation
{$R *.DFM}
procedure GetClientPcNameIP; //定义了一个局部函数,这个函数的功能是获取本机的计算机名称和IP
const
nSize = 256;
var
strName : PChar;
pWsaData : WSAData;
nHostent : PHostEnt;
Ver : Word;
begin
try
//初始化WinSock
Ver := MakeWord(2,0);
if WSAStartup(Ver,pWsaData) <> 0 then exit;
//获取本机的计算机名和IP
GetMem(strName,nSize);
if GetHostName(strName,nSize) <> 0 then exit;
FComputerName := strName;
nHostent := GetHostByName(strName);
//FPcIP := AnsiString(inet_ntoa((pinin_addr((hInfo.h_addr_list)^))^));
FComputerIP := inet_ntoa((PInAddr((nHostent.h_addr_list)^))^);
finally
FreeMem(strName);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
GetClientPcNameIP;
Edit1.Text := FComputerName;
Edit2.Text := FComputerIP;
end;
Qt获
取
本机
的
ip地址
、MAC地址
本文介绍了两种在Qt中获
取
本机
IP地址
和MAC地址的方法。方法一分别展示了如何获
取
IP和MAC地址,而方法二通过QHostInfo类获
取
主机名和
IP地址
,特别是如何筛选IPv4地址,并提供了以主机名获
取
IP地址
的示例。
Java 获
取
本机
IP地址
本文详细介绍了在Java中如何准确获
取
本机
IP地址
,包括排除回环地址、私有地址和链接本地地址,提供了一种通过网络接口和Socket连接8.8.8.8来获
取
有效IP的方法,确保获
取
到可用于网络通信的IPv4地址。
Shell脚本中获
取
本机
ip地址
本文介绍使用Shell脚本在单网卡或多网卡环境下获
取
本机
IP地址
的方法,包括处理不同网段的
IP地址
,并提供
IP地址
合法性校验。
前端Vue中获
取
本机
ip地址
本文详细介绍在前端Vue项目中如何禁用WebRTC暴露本地IP,并通过RTCPeerConnection实现获
取
本机
IP地址
的方法,包括代码示例及调用IP接口进行后续操作。
JAVA获
取
本机
IP地址
本文介绍了一种更准确的Java代码实现,用于在复杂网络环境下获
取
本机
的局域网
IP地址
,避免了虚拟机网卡等不可见地址的干扰。
网络通信/分布式开发
1,594
社区成员
32,945
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章