会社などのDHCP環境で、接続したいマシンのIPが分からなくなった場合の簡易メモ。ただし、IPを知りたいマシンのMACアドレスは事前に調べておく必要はあるけど。Debianではnet-toolsパッケージに入っているrarpコマンドも利用できるけど、カーネルの対応が必要なようだ。MACアドレス関係のメモもついでに。
追記:ITProの「ネットワークコマンド道場」に、初心者向けの似たような記事が載っているので、そのリンクも追加しておきます。
ネットワーク内で迷子になったPCを探す
■ LinuxでPCを探す方法
* PCのMACアドレスをあらかじめ調べておく
$ /sbin/ifconfig
の「HWaddr」の項目を参照すればよい。
* ブロードキャストアドレス向けにpingを打つ
+ IPは適宜変更すること。
+ 接続したいマシンでicmpをフィルタリングしていないこと
セキュリティソフトやファイヤウォールの設定、ルータ等でicmpパケットの
応答を返さないように設定しているケースでは、この手法は有効ではない。
$ ping 192.168.0.255
(Do you want to ping broadcast? Then -bと表示されて
実行できない場合は、英文の通り-bオプションを付けて
$ ping -b 192.168.0.255で実行するべし。)
* arpキャッシュを参照する
$ /usr/sbin/arp -a
ソートする場合は
$ /usr/sbin/arp -a | sort
一覧に表示されたMACアドレスをみて判断する。
今回の例の場合、MACアドレスが 08:00:1F:12:34:56 のマシンを探すのが目的だったので
$ /usr/sbin/arp -a | grep 08:00:1F:12:34:56
のようにしてIPを取得した。
MACアドレスの上位24ビットは、OUIという製造ベンダーを表すコードである。
今回のケースの場合、cavebear.comのベンダコード一覧からメーカ名を探すと
SHARPに割り当てられたベンダコードであることが分かる。
■ WindowsでPCを探す方法 (NT系)
* WindowsでMACアドレスを調べる/arpキャッシュを参照する。
ipconfig /all
を実行して、対象となるネットワークアダプタの「Physical Address」の
項目を参照すればよい。
* ブロードキャストアドレス向けにpingを打つ
WIndows2000,XP,VistaなどのNT系カーネルのマシンでも、コマンドプロンプトから
ping 192.168.0.255
arp -a
などを入力することで、探したいPCのIPアドレスを調べることができる。
@IT - 第11回 MACアドレスを解決するARPプロトコル
http://www.atmarkit.co.jp/fwin2k/network/baswinlan011/baswinlan011_01.html
@IT - イーサネットのフレーム構造 MACアドレス
http://www.atmarkit.co.jp/fwin2k/network/tcpip007/tcpip01.html
Wikipeida - MACアドレス
http://ja.wikipedia.org/wiki/MAC%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9
Ethernet Codes master page (MACアドレスのベンダコードなどへのリンク)
http://www.cavebear.com/CaveBear/Ethernet/
ITpro - 「ネットワークコマンド道場」 悪さをしている機器を探し出す No.1〜No.4
http://itpro.nikkeibp.co.jp/article/COLUMN/20061107/252739/
http://itpro.nikkeibp.co.jp/article/COLUMN/20061107/252798/
http://itpro.nikkeibp.co.jp/article/COLUMN/20061107/252825/
http://itpro.nikkeibp.co.jp/article/COLUMN/20061107/252833/
中央防災会議 「東南海・南海地震等に関する専門調査会」 http://www.bousai.go.jp/jishin/chubou/nankai/index.html JR西日本ニュース - 防災業務計画「東南海・南海地震編」 http://www.westjr.co.jp/news/newslist/article/040715c.html 高知県 - 南海地震に備えてGOOD!! http://www.pref.kochi.jp/~shoubou/sonaetegood/index.html
OpenCOBOLから外部のシェルスクリプトを実行させたいと思って、いろいろ調べていたのだけど見付からず。そもそも、COBOL関係の情報がWEB上に少ないのと、ベンダや汎用機ごとの方言があったりして参考にならないことが多いからかなー。商用のCOBOLとかではそういった拡張機能があるらしいんだけど、OpenCOBOLでは不明。やっぱりMONTSUQIのSHELLハンドラを呼び出すしか方法がないのかな..?
追記: cobolerさんからのツッコミでCOBOLからC言語の関数を呼び出すことで、間接的にシェルを起動させるというネタをいただいたので、リンクを追加。
コボラードットコム - COBOL+Apache+PostgreSQL のサンプル http://www.coboler.com/web03.htm COBOL利用技術 - 第3回 COBOLと他言語との連携 (その1−C言語) http://www.cobol.gr.jp/knowledge/technical/tec003.html