| 616 | == IP アドレス == |
| 617 | === IP アドレス ←→ 数値変換 === |
| 618 | * これだけのためにいちいち CPAN モジュールをインストールするのはイヤとかそんな理由 |
| 619 | {{{ |
| 620 | #!perl |
| 621 | sub num2ipv4addr { |
| 622 | return join( '.', unpack( 'C*', pack( 'N', shift ) ) ); |
| 623 | } |
| 624 | |
| 625 | sub ipv4addr2num { |
| 626 | return unpack( 'N', pack( 'C*', split( /\./, shift ) ) ); |
| 627 | } |
| 628 | |
| 629 | sub main { |
| 630 | foreach my $arg (@_) { |
| 631 | if ( $arg =~ /^\d+$/ ) { |
| 632 | print num2ipv4addr($arg), "\n"; |
| 633 | } |
| 634 | else { |
| 635 | print ipv4addr2num($arg), "\n"; |
| 636 | } |
| 637 | } |
| 638 | } |
| 639 | |
| 640 | if ( $0 eq __FILE__ ) { |
| 641 | &main( @ARGV ? @ARGV : <STDIN> ); |
| 642 | } |
| 643 | }}} |
| 644 | |