獲取計算機名和IP地址(linux c++版本)


/*
獲取計算機名和IP地址(linux c++版本)
root@yiyouserver:~/XWH/xwh# g++ -o gethostname gethostname.cpp
root@yiyouserver:~/XWH/xwh# ./gethostname
計算機名:yiyouserver
IP:192.168.205.128
*/
#include <stdio.h>
#include <unistd.h>// 使用gethostname函數包含該頭文件即可
#include <sys/socket.h>
#include <netdb.h>

// 主機名轉成點分 IP 地址
void HostNameToIP(const char* szHostName, char* szIP,int len)
{
/* 即要解析的域名或主機名 */
hostent *host_entry = gethostbyname(szHostName);
if( 0 != host_entry)
{

snprintf(szIP, len, "%d.%d.%d.%d",
host_entry->h_addr_list[0][0] & 0x00ff,
host_entry->h_addr_list[0][1] & 0x00ff,
host_entry->h_addr_list[0][2] & 0x00ff,
host_entry->h_addr_list[0][3] & 0x00ff);
}
}

int main()
{
char szHostName[256]={0};
gethostname(szHostName,256);
printf("計算機名:%s\n",szHostName);
char szIP[20] = {0};
HostNameToIP(szHostName, szIP,sizeof(szIP)); // 主機名轉成點分 IP 地址
printf("IP:%s\n",szIP);

return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM