From owner-freebsd-users-jp@freebsd.org Sun May 15 11:33:29 2016 Return-Path: Delivered-To: freebsd-users-jp@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F37D1B220AE for ; Sun, 15 May 2016 11:33:28 +0000 (UTC) (envelope-from kiri@kx.openedu.org) Received: from kx.openedu.org (103x15x187x19.rev.grnt.ne.jp [103.15.187.19]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 976781A43 for ; Sun, 15 May 2016 11:33:27 +0000 (UTC) (envelope-from kiri@kx.openedu.org) Received: from kx.openedu.org (kx.openedu.org [103.15.187.19]) by kx.openedu.org (8.14.5/8.14.5) with ESMTP id u4FBVT4c089490; Sun, 15 May 2016 20:31:29 +0900 (JST) (envelope-from kiri@kx.openedu.org) Message-Id: <201605151131.u4FBVT4c089490@kx.openedu.org> Date: Sun, 15 May 2016 20:31:29 +0900 From: KIRIYAMA Kazuhiko To: "IIJIMA Hiromitsu" Cc: In-Reply-To: References: <88EC40C7E4214C63885ED7F7B67B817F@FMV> <6645a122-d5b9-2ded-647d-1cedd94ae44c@enuenu.org> User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL/10.6 MULE XEmacs/21.4 (patch 22) (Instant Classic) (amd64--freebsd) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=ISO-2022-JP Subject: [FreeBSD-users-jp 95812] Re: =?iso-2022-jp?b?bmMoMSkbJEIkcjtIJEMkRiVHITwlPyRyQXc/LiQ3GyhC?= =?iso-2022-jp?b?GyRCJEYkYjQwTjskSyRKJGkkSiQkGyhC?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Discussion relevant to FreeBSD communities in Japan List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 May 2016 11:33:29 -0000 At Sun, 15 May 2016 04:24:02 +0900, IIJIMA Hiromitsu wrote: > > いいじまです。 > > > 野中です。 > > ncは使ったことが無いのですが、manを見た範囲ではクライアント側に > > -Nオプションを付けるとうまくいくかもしれません。 > > はい。今回のテストケースはではこれでうまくいきました。 > > 念のためいくつか調べてみましたので、以下つらつらとメモしておきます。 > > ☆ ☆ ☆ > > まず、https://www.freebsd.org/cgi/man.cgi で参照できる各種OSの中では、 > CentOS、Darwin、RedHat、SuSE Linuxのncには-Nがありません。 > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=CentOS+7.1 > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=Darwin+8.0.1%2Fppc > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=Red+Hat+Linux%2Fi386+9 > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=SuSE+Linux%2Fi386+11.3 > > Debian、HP-UX、NetBSD、Solaris、UNTRIXにはそもそもnc自体がないようです。 > (ベースシステムとは別パッケージになっているだけ?) > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=Debian+8.1.0 > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=HP-UX+11.22 > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=NetBSD+7.0 > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=SunOS+5.10 > https://www.freebsd.org/cgi/man.cgi?query=nc&manpath=ULTRIX+4.2 > > 手元にUbuntuのバーチャルマシンがあるのでそちらでも試してみましたが、 > やはり -N はありません。 > > ☆ ☆ ☆ > > それから、これは釈迦に説法ですが、nc -N が使えるかどうかの判定に > % nc -h |& egrep '[-]N[^[:alnum:]] >& /dev/null > を実行して終了コード $? で判別しようとすると罠にはまります。 > > FreeBSDの場合、nc -h は1を返し、egrepは0を返します。 > で、このパイプをbashで実行すると $? は0になります。 > ところが、同じコマンドをtcshで実行すると $? は1になります。 > 同じことをUbuntuでもやってみたのですが、こちらの場合、nc -h は > 0を返し、egrepは1を返すので、$? はbashでもtcshでも1になります。 えーと,全てのソースは見てないので憶測に過ぎませんが,基本的 に *BSD* ではもともと -h や --help なんて洒落たオプションは なく,間違ったのを指定すると常に usage を返す仕様になってい るのでは? nc は -h がありましたが,でも基本 1 を返している のでは? sh で見ると, $ uname -a FreeBSD freebsd-11c 11.0-CURRENT FreeBSD 11.0-CURRENT #3 r298951: Wed May 4 06:50:18 JST 2016 admin@freebsd-11c:/usr/obj/usr/src/sys/GENERIC amd64 $ if nc -h > /dev/null 2>&1; then > echo true > else > echo false > fi false $ ということで,やはり -h は 1 を返してます. > > 結局のところ、nc -N が使えるかどうかの判定には > % test -n "`nc -h |& egrep '[-]N[^[:alnum:]]'`" > あたりを使う必要があります。 sh ですが,直接, if nc -N foo 1234 < bar; then ... とかすれば良いような... > > ☆ ☆ ☆ > > あと、一つだけ訂正です。 > 今回の実験で FreeBSD→Linux の接続がうまくいかなかった犯人は、 > FreeBSDのncコマンドではなく、Linux側のファイヤーウォールのようです。 > > まず、Linux側で > % echo WELCOME | nc -l 8086 & > としてサーバを立てます。 > > で、FreeBSDから > % echo GET | nc -N m2.valueserver.jp 8086 > とすると、いつまでもだんまりです。 > > そこでCtrl+Cで強制終了して、次に > % telnet m2.valueserver.jp 8086 > とすると > Trying 157.7.184.32... > (しばらく待たされる) > telnet: connect to address 157.7.184.32: Operation timed out > telnet: Unable to connect to remote host > だそうで、要するにTCPの接続がブラックホールに吸い込まれています。 > > 念のため、同じFreeBSDクライアントの上で > % telnet localhost 8087 > としてみると、こちらは即座に > Trying 127.0.0.1... > telnet: connect to address 127.0.0.1: Connection refused > Trying ::1... > telnet: connect to address ::1: Connection refused > telnet: Unable to connect to remote host > と返ってきます。 > > …徒労でした。 > > ======================================================================== > (Mr.) IIJIMA Hiromitsu aka Delmonta > 飯嶋 浩光 / でるもんた・いいじま ; (任同)電脳外道学会 代表取締役椅子人 > ------------------------------------------------------------------------ > Web (Japanese): http://www.dennougedougakkai-ndd.org/ >   Twitter: @delmonta_iijima, @kabu_agare, #放送大学, #OUJ > Yahoo! Japan: delmonta_iijima > ------------------------------------------------------------------------ > マニアツクで綾しいクイヅbot、運用開始!現在、購読者・出題者とも募集中。 >     ※購読はこちらから → https://twitter.com/AyaC_KaltQ >     ※出題希望のかたは → http://kaltq.wicurio.com/ > ======================================================================== > > _______________________________________________ > freebsd-users-jp@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp > To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe@freebsd.org" > --- KIRIYAMA Kazuhiko