?? 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 + -