📄 getipadress_computername.txt
字号:
void __fastcall TMainFaceForm::GetIPAdress_ComputerName(void)
{
char HostName[255]="";
unsigned long ComputerSize;
GetComputerName(HostName,&ComputerSize); // 得到本主机名
MachineName=HostName;
WSAData wsaData;
if(WSAStartup(MAKEWORD(1,1),&wsaData)!=0)//初始化WINSOCK调用
{
HelpLabel->Strs->Add("取得本机IP地址失败...");
WSACleanup(); //释放WINSOCK调用
return;
}
else
{
struct in_addr addr[5]; // 假设主机不是多宿主机,即最多只有一块网卡和一个动态IP
for(int i=0;i<2;i++)memset(&addr[i],0,sizeof(in_addr)); // 对in_addr结构清0
LPHOSTENT lpHostEnt=gethostbyname(HostName);//利用得到的主机名去获得主机结构
if(!lpHostEnt)
{
HelpLabel->Strs->Add("本机IP地址未知...");
WSACleanup(); //释放WINSOCK调用
return;
}
else
{
for(int i=0;lpHostEnt->h_addr_list[i]!=0;i++) //从主机地址表中得到IP地址
{
memcpy(&addr[i],lpHostEnt->h_addr_list[i],sizeof(in_addr));
LocalIP=inet_ntoa(addr[i]);
if(LocalIP=="127.0.0.1")continue;
}
WSACleanup(); //释放WINSOCK调用
return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -