« ゆうちょ銀行をかたるフィッシング、「口グイン画面リ二ューアルのお知らせ」 | トップページ | 足利銀行のインターネットバンキングに不正ログイン »

1行で文字列の IP アドレスを数値に変換する方法(Linux bc コマンド)

1行で文字列の IP アドレスを数値に変換する方法(Linux bcコマンド)

キーワード: Linux, Ubuntu, CentOS, RedHat, bc, IPアドレス, アドレス計算、IPアドレス相互計算

スポンサーリンク

概要

Linux の bc コマンドを使って文字列の IP アドレス(10.0.0.1) を 10進数の数値(167772170)に変換する方法を書いてみました。一行で書いたので少し長いです。


$ BIN=`for i in 10 0 0 1; do echo "obase=2; ibase=10; $i" | bc | xargs printf "%08d"; done`; echo "obase=10; ibase=2; $BIN" | bc

167772170


bcコマンドは、2進数、8進数、10進数、16進数の相互変換や数値計算を行うコマンドです。ibase で入力値の基数を、obase に出力値の基数を指定します。これら ibase や obase、変換したい値(または計算式)は標準入力から bc に渡します。

IPアドレスを処理する場合は、10.0.0.1 などの文字列より、167772170 などの数値として取り扱った方が便利なことが多いです。例えば、IPアドレスのソートやレンジ計算、比較などの処理です。また、データベースに格納される IDS やFW のログは、IPアドレスが前述の理由により数値になっていることも多いです。これらのデータを取り出して処理する場合にも便利です。

スポンサーリンク

関連 URL

« ゆうちょ銀行をかたるフィッシング、「口グイン画面リ二ューアルのお知らせ」 | トップページ | 足利銀行のインターネットバンキングに不正ログイン »

Linux」カテゴリの記事

記事一覧

スポンサードリンク


Twitter


無料ブログはココログ

ブログ検索