社区
网络通信/分布式开发
帖子详情
如何取本机的IP地址?先谢了。
cathy01
2003-01-07 09:48:39
如何取本机的IP地址?
...全文
145
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地址
方法1: 获
取
ip地址
: QString getHostIpAddress() { QString strIpAddress; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // 获
取
第一个本主机的IPv4地址 int nListSize = ipA...
Java 获
取
本机
IP地址
文章目录前言一、规则二、获
取
1.使用2.工具类 前言 在Java中如何准确的获
取
到
本机
IP地址
呢?网上大部分的做法是InetAddress.getLocalHost().getHostAddress()。这的确能获
取
到
本机
IP地址
,但是是不准确的。因为忽略了一个问题,网络环境是多变的,一台计算机不同的网卡有多个
IP地址
,Lan、WiFi、蓝牙、热点、虚拟机网卡等。 一、规则 127.xxx.xxx.xxx 属于 “loopback” 地址,即只能你自己的
本机
可见,就是
本机
地址,比较常见的有 127.0.0
Shell脚本中获
取
本机
ip地址
1.单网卡 方法1: #!/bin/sh local_ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"` echo "${local_ip}" ifconfig -a //和window下执行此命令一样道理,返回
本机
所有ip信息 grep inet //截
取
包含ip的行 grep -v 127.0.0.1 //去掉本地指向的那行 grep
前端Vue中获
取
本机
ip地址
前端Vue中获
取
本机
ip地址
methods方法 getUserIP (onNewIP) { // 获
取
ip地址
let MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection let pc = new MyPeerConnection({iceServers: []}) let noop = function () {}
JAVA获
取
本机
IP地址
在百度搜索“JAVA获
取
本机
IP地址
”,基本上搜到比较普遍的说法是InetAddress.getLocalHost().getHostAddress(),实际上这段代码在复杂环境下是不准的。
IP地址
在现在的网络环境更加复杂了,比如有Lan,WIFI,蓝牙热点,虚拟机网卡... 即存在很多的网络接口(network interfaces),每个网络接口就包含一个
IP地址
,并不是所有的
IP地址
能被外部或局域网访问,比如说虚拟机网卡地址等等。 直接上代码 private static InetAddress
网络通信/分布式开发
1,594
社区成员
32,944
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章