0
アドレスが10.0.0.0 - 10.255.255.255の範囲にあるかどうかを知りたい。ipv4アドレスの比較 - sockaddr_in
int localAddress = 0;
struct sockaddr_in localOneFirst;
struct sockaddr_in localOneLast;
inet_pton(AF_INET, "11.0.0.0", &(address.sin_addr));
inet_pton(AF_INET, "10.0.0.0", &(localOneFirst.sin_addr));
inet_pton(AF_INET, "10.255.255.255", &(localOneLast.sin_addr));
if((address.sin_addr.s_addr >= localOneFirst.sin_addr.s_addr) && (address.sin_addr.s_addr <= localOneLast.sin_addr.s_addr)) {
localAddress = 1;
}
私のアドレス11.0.0.0は10.255.255.255より大きいが、このプログラムはそうではないことを示しています。
"address.sin_addr.s_addr"の値が11で、 "localOneFirst.sin_addr.s_addr"の値が大きいためです。
したがって、一部のアドレスがこの範囲にあるかどうかを認識できますか?
可能な重複[Cでソケットアドレスを比較するには?](https://stackoverflow.com/questions/15461350/how-to-compare-socket -address-in-c) – v1bri
いいえ、それは違う –
問題が何であるか分かりません。 32ビット整数の最初のオクテットを比較するか、既に点線の表現をしているので、最初のドットの前の数字を比較してください。 – SergeyA