3
나는 기본 소켓 명령을위한 소켓 주소를 찾기 위해 getaddrinfo를 사용 해왔다. 하지만 최근에 나에게 반환하는 주소는 inet_ntop을 사용하여 발견 한 가짜 IP 주소입니다. 내 코드뿐만 아니라 Beej's Guide에 제공된 코드를 시도했으며 두 코드 모두 동일한 결과를 산출합니다. 여기에 코드 없습니다 : 아무리 내가 사용하는 어떤 주소getaddrinfo & inet_ntop의 가짜 IP 주소
struct addrinfo hints, *info;
int status;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
if(status = getaddrinfo(address, port, &hints, &info)) {
fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(status));
}
char ip4[INET_ADDRSTRLEN];
inet_ntop(AF_INET, info->ai_addr, ip4, INET_ADDRSTRLEN);
std::cout<<ip4<<std::endl;
, 항상 나 256 * X + Y 포트 번호와 동일한 형태
16.2.x.y
의 IP 제공합니다. 아무도 이런 일이 일어난 것을 본 적이 없습니까?
그래, 약간 도움이 될 것 같습니다. : P 고마워! 실제로 & ((const sockaddr_in *) info-> ai_addr) -> sin_addr입니다. – Xymostech