#include <iostream>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
using namespace std;
string GetEndpoint() {
char host_name[255];
if(gethostname(host_name, 255) == -1) {
return "";
}
cout <<" hostname:" << host_name <<endl;
struct hostent *phe = gethostbyname(host_name);
if (phe == 0) {
return "";
}
string ip;
for (int i = 0; phe->h_addr_list[i] != 0; ++i) {
struct in_addr addr;
memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr));
ip = inet_ntoa(addr);
cout <"ip:" << ip <<endl;
}
return ip+":11315";
}
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
using namespace std;
string GetEndpoint() {
char host_name[255];
if(gethostname(host_name, 255) == -1) {
return "";
}
cout <<" hostname:" << host_name <<endl;
struct hostent *phe = gethostbyname(host_name);
if (phe == 0) {
return "";
}
string ip;
for (int i = 0; phe->h_addr_list[i] != 0; ++i) {
struct in_addr addr;
memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr));
ip = inet_ntoa(addr);
cout <"ip:" << ip <<endl;
}
return ip+":11315";
}
本文详细介绍了如何使用C++获取本地主机的完整主机名,并通过gethostbyname函数将其转换为IP地址的过程。代码示例展示了如何在程序中实现这一功能。
671

被折叠的 条评论
为什么被折叠?



