我有一个文件,其中包含100多个IP地址(点分十进制格式,例如169.23.43.12)。现在我需要读取所有IP地址并按升序排序。为此,首先我尝试将所有IP地址转换为其等效的整数。我创建了一个C ++函数来转换IP地址,但对于大型IP地址(例如255.250.120.100),它无法正常工作。我尝试使用inet_aton()和inet_ntoa(),但是使用这两个函数,我无法对IP地址进行排序。因此,请给我一个将IP地址转换为可排序形式的想法。以下是一些代码,我尝试使用它们来对IP地址进行排序,但未能成功。
结构体sockaddr_in antelope [2]; char *some_addr;
结构体sockaddr_in antelope [2]; char *some_addr;
inet_aton("60.0.0.4", &antelope[0].sin_addr); // store IP in antelope
inet_aton("10.0.0.2", &antelope[1].sin_addr); // store IP in antelope
std::sort(antelope,antelope+2);
cout<<inet_ntoa(antelope[0].sin_addr)<<endl;
cout<<inet_ntoa(antelope[1].sin_addr)<<endl;