6

私は、32 ビットの符号なし整数 (つまり: uint32_t) を 4 つの 8 ビット フィールドのセットに変換し、それを IP アドレスのように扱い、それが所定の範囲内にある場合にクライアントに報告する小さなコードを持っています。 IP アドレス。

クライアントのIPアドレスを含むからクライアントのIPアドレスを取得する方法を示すCのコードのいくつかの異なる例と、C#の回答すでに見つけました。ただし、アドレスをもう少し分解して、純粋な C のままにし、いくつかの簡単なことを知りたいと思います。struct sockaddr_in

  1. 内部表現はシステム間で一貫していますか? または、s_addrフィールドでエンディアンネスのチェック/修正を行う必要がありますか?
  2. CLASS_C_NETMASK、などの行に沿って、CLASS_B_NETMASK手動で生成されたマスク ( 、 など) を使用するよりも適切な0xFF000000標準0x00FF0000マクロはありますか?
  3. IPアドレスがIPアドレスの範囲内にあるかどうか、またはサブネットマスクと一致するかどうかをチェックするソケットライブラリに既存の関数はありますか?

ありがとう。

4

1 に答える 1