nc (netcat)のlistenはGNU版とBSD版 (Mac) でオプション指定が異なる
#netcatコマンド #nc #GNU #BSD
以下が1234ポートでlistenする方法。
GNU版
code:bash
nc -l -p 1234
BSD版
code:bash
nc -l 1234
Macの標準のncはBSD版が入っている。もしbrew install netcatをしていればGNU版が入る。
MacのBSD版を明示的に実行するには/usr/bin/ncを利用すると良いと思う。
もうすこし詳しく
面倒なことはGNU版でnc -l 1234をしてもエラーでこけない。ただし1234ポートでlistenするわけではない。
例えばUbuntuで-vオプションもつけて実行すると詳細がわかり、1234でlistenしていないことが分かる。
code:console
$ nc -vl 1234
1234: inverse host lookup failed: Unknown host
listening on any 33453 ...
また、BSD版でnc -l -p 1234を実行すると以下のメッセージが出る。
code:console
/usr/bin/nc -l -p 1234
nc: missing port with option -l
ncを一回使ってGNU版でもBSD版でも動くコマンドを書きたかったが難しかった。