2010-11-23 8 views
3

ラクダ本はV-文字列は、IPv4アドレスを表すために使用することができることを示唆している:バージョン文字列のトピックに関するIPv4アドレスにv-stringを使用できますか?

$ipaddr = 204.148.40.9; # the IPv4 address of oreilly.com 

しかしperldata状態:IPv4のV-文字列を使用していること

注意を もSocketパッケージのinet_aton()/ inet_ntoa() ルーチンを使用しない限り、 のアドレスはポータブルではありません。ないポータブル

1)なぜ使用しているV-文字列:

は、I 2つの質問がありますか?
2)IPアドレスをドット表記から整数に変換する「標準的な」方法とは何ですか? unpack "N", <v-string>が時折問題を引き起こす可能性があると思われます。

答えて

5

コード化されたフォームを取得するための「標準的な」方法は、ドット付きIPアドレスとホスト名を扱うinet_atonですが、何のために必要ですか?多くの場合、IO :: Socketなどのようなものを扱う低レベルのインターフェースをすべてスキップするのが最も良いアイデアです。

整数に変換しようとしていて、ソケット関数が期待する形式ではない(C言語でも同様の概念ですが、Perlではそうではありません)場合は、先に進むことができますあなたが一貫している限り、packを使ってください。移植できない部分は、ソケット関数が受け入れる形式です。たとえば、unpack "N", pack "C4", split /\./, "1.2.3.4"は、そのアドレス(16909060 == 0x01020304の形式)の無署名ビッグエンディアン表現を得ます。

関連する問題