仕事で私のPCがあるネットワーク帯で空いているIPアドレスを調べたい時がある。
新しい協力会社の方が来られたときやVirtualBoxで仮想マシンをブリッジアダプターで立てたいときなんかに調べたいときがある。
その際にしっかりと管理されているIP台帳があれば問題ないのだが、
最初だけ管理していて、だいたい途中からは管理されていないのが現実…。
まぁ色んな理由があるんだろうけども。
勝手にIP使う人が時々いるから困るんだよなぁ。
素早く空いているIPを見つけたい。そんな時に便利なツールがありますので順を追って紹介します。
Contents
とりあえずpingを打ってみる
「このIP空いてるかなー」と思ってとりあえずpingを打ってみる。
まぁ応答がなければいいんじゃない?って安易な気持ち。
だがこれでは効率が悪い。
だからもっと便利なツールを使う。
みんな大好きNmap
以前の記事でもNmapを紹介してその際にping scanのオプションも書いたので詳しくはそちらを参照していただきたい。
詳しくないんだけど。
Nmapでスキャンする方法
Nmapのping scanで範囲指定してどのIPから応答があったかを確認できる。
手動でpingコマンド叩きまくるより断然効率がいい。
でも、何度かping scanすると返ってくるホストの件数が違っていることがよくある。
あれさっき7 host upって出てたのに今回は8 host upなの…
あれ、10 host upって…
感じになる。
そこで新たなツールを紹介したい。
玄人大好き?fping
インターネット空間全てのIPアドレスをスキャンするのにかかる時間が6分と言われているやばいツール。
その名もfping。
https://fping.org/
たぶんfast-pingの略なのかなと思っています。
名前の通りpingが早いんです。
pingだけなのでポートスキャンはできないはず。
Zabbixにも使われているとか聞いたことありますが未確認です。
まぁただパケットサイズの指定とかできたりするので…この後は想像にお任せします。
使い方は簡単で、192.168.1.1~192.168.1.255の疎通確認をしたい場合は以下のコマンド。
fping -g 192.168.1.1 192.168.1.255
fping -g 192.168.1.0/24
疎通確認できたホストだけ表示するには-aオプションをつける。
fping -a -g 192.168.1.1 192.168.1.255
でもpingの応答をしないように設定しているマシンがあった場合、
fpingだと存在確認しきれないので、結局最終確認としてNmapを使うことになるんですが。
fpingをインストールする方法
いつでもfpingを使えるようにしておきたい人向け
Windowsは確認していないが、Linuxは以下のコマンドでOK。
yum -y update && yum install -y fping
apt -y update && apt install -y fping
Dockerでfpingを使えるようにする方法
空いているIPを確認するためにマシン立ち上げるのかっていう話もあるので?
Dockerfileを作成してみた。
まぁDockerfile作ってみたかっただけだけど。
Dockerイメージを作っておけば使いたいときだけ使えるし、
これなら自分のマシンにインストールしなくてもいいので便利。…便利?
FROM ubuntu:latest MAINTAINER Admin RUN apt-get -y update && apt-get -y install \ apt-utils \ fping CMD ["fping", "--help"]
debconf: delaying package configuration, since apt-utils is not installed
というメッセージが出てくるので、apt-utilsをインストールする処理も入れたけど、結局同じメッセージが出てくる。
なんなんだ…。
あと、aptでインストールしようとするとなんかエラーが出る。
推奨されていないのか?
DockerfileからDockerイメージを作成
docker build -t myfping:1 .
とりあえずHELPを見たい場合は以下のコマンド
docker run --rm myfping:1
作成したDockerイメージからコンテナを起動
docker run -it --rm myfping:1 bash
小ネタ
こんなメッセージが出る場合がある。たぶん結構ある。
ICMP Host Unreachable from 192.168.1.13 for ICMP Echo sent to 192.168.1.254
エラー出力なので、エラー出力を/dev/nullにリダイレクトする。
これで快適なホスト発見ライフを!←