- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP「ip2long」について)
PHPのip2longについて
このQ&Aのポイント
- 「ip2long」とは、インターネットプロトコルドット表記のアドレスを適当なアドレ スを有する文字列に変換する関数です。
- 「適当なアドレ スを有する文字列」とは、アドレスを示す文字列のことです。
- ip2long関数は、ロングIPアドレス(符号無しの10進数)を返します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>66.249.89.99 だと正の数値 1123637603 この値を16進変換して全部繋げてそれを10進数に戻してごらん。 正負の違いは2進変換したときの最上位桁が0か1か。その辺りは2進数での正負の表現で調べてね。
お礼
「01000010111110010101100101100011」 「11010000010011011011110010100110」 なんですね。。。 理解できました、ありがとうございます。
補足
SAYKAさんありがとうございます。 ご教授いただきましたように2つのIPアドレスを変換してみました。 66.249.89.99 ↓ ↓16進数変換 ↓ 42F95963 ↓ ↓10進数変換 ↓ 1123637603 ↓ ↓2進数変換 ↓ 1000010111110010101100101100011 208.77.188.166 ↓ ↓16進数変換 ↓ D04DBCA6 ↓ ↓10進数変換 ↓ 3494755494 ↓ ↓2進数変換 ↓ 11010000010011011011110010100110 「66.249.89.99」→「1123637603」は納得できるのですが、「208.77.188.166」→「-800211802」は何故なんでしょうか??? 「208.77.188.166」→「3494755494」ではないのでしょうか。 2進変換したときの最上位桁は両方とも「1」ですよね?