私が使っているnetcatの種類をどうやって知ることができますか?

私が使っているnetcatの種類をどうやって知ることができますか?

2つの味で提供されますnetcatnetcat-openbsdそしてNetcat - 伝統的

私が使っているnetcatの種類をどうやって知ることができますか?食べてみましたが、man nc味がどうでしたかについての言葉はありませんでした。

答え1

まず、コンピュータに複数のバージョンをインストールできます。したがって、答えはインストールされているバージョンの数と入力するコマンドによって異なります。

netcat-traditionalまた、Ubuntuのパッケージマネージャを介してnetcat-openbsdインストールできます。私の場合は、aptソースコードビルドを通じてGNU netcatフレーバーもインストールしました。この公式ウェブサイト

"openbsd"バージョンの場合は、<package-name>を使用してロケーションバイナリ名を見つけることができます(パッケージマネージャではない場合は、対応するエントリをdpkg -L直接検索してください)。dpkg Lapt

$ dpkg -L netcat-openbsd dpkg -L grep /bin |
/ゴミ箱
/ゴミ箱/nc.openbsd

次に、type -aバイナリ名がnc.openbsdコマンド内で検索可能であり$PATH、コマンドとして解釈されることを確認するために使用されます。

$ type -a nc.openbsd
nc.openbsd is /bin/nc.openbsd
nc.openbsd is /bin/nc.openbsd

「伝統的な」味の場合でも同じです。

$ dpkg -L netcat-traditional | grep /bin
/bin
/bin/nc.traditional
$ type -a nc.traditional
nc.traditional is /bin/nc.traditional
nc.traditional is /bin/nc.traditional

nc.openbsdこれは、ツールを実行するためのコマンドを実行でき、ツールを実行するためのnetcat-openbsdコマンドを実行できることを意味します。 (コマンドに「.」が含まれていますが、パッケージ名には「-」が含まれているので混乱する可能性があります。)nc.traditionalnetcat-traditional

インストールできる味は3つのようですapt

$ apt-cache search netcat --names-only
netcat-openbsd - TCP/IP swiss army knife
netcat - TCP/IP swiss army knife -- transitional package
netcat-traditional - TCP/IP swiss army knife

しかし、実際にはnetcat仮想パッケージだけです。

$ apt-cache show netcat | grep Description-en  -A 2
Description-en: TCP/IP swiss army knife -- transitional package
 This is a "dummy" package that depends on lenny's default version of
 netcat, to ease upgrades. It may be safely removed.

したがって、必要に応じて以下をインストールしてnetcat-openbsd転送netcat-traditionalできます。apt

sudo apt-get install netcat-openbsd
sudo apt-get install netcat-traditional

ncコマンドはどうですかnetcat?検索可能な複数のスタイルにバインドすることができます。またはを入力すると、$PATHいずれかのパスが実行されます。同様に、優先順位が最初の行の間を使用して確認できます(例:ncnetcattype -a勇敢な次のような):

$type-a nc 
nc は /usr/local/bin/nc です。
nc は /bin/nc です。
nc は /usr/local/bin/nc です。
nc は /bin/nc です。
$型-a netcat
netcatは/usr/local/bin/netcatです。
netcatは/bin/netcatです。
netcatは/usr/local/bin/netcatです。
netcatは/bin/netcatです。

realpath以下を使用して解決パスを見つけることができます。

$物理パス/usr/local/bin/netcat 
/usr/local/bin/netcat
$物理パス/bin/netcat
/bin/nc.openbsd
$物理パス/usr/local/bin/nc
/usr/local/bin/netcat
$ 物理パス/bin/nc
/bin/nc.openbsd

4つのパスのうち2つだけが私のシステムで一意です。 1つは「GNU」、もう1つは「openbsd」です。

$ /usr/local/bin/netcat --version | head -1
netcat (The GNU Netcat) 0.7.1
$ /bin/nc.openbsd -h |& head -1
OpenBSD netcat (Debian patchlevel 1.130-3)

つまり、ncORを入力すると「GNU Netcat」netcatが実行されます/usr/local/bin/netcat

update-alternatives確認されたシンボリックリンクパスを調整してみることができます。

$ realpath /bin/nc
/bin/nc.openbsd
$ realpath /bin/netcat
/bin/nc.openbsd
$ sudo update-alternatives --config nc
There are 2 choices for the alternative nc (providing /bin/nc).

  Selection    Path                 Priority   Status
------------------------------------------------------------
  0            /bin/nc.openbsd       50        auto mode
* 1            /bin/nc.openbsd       50        manual mode
  2            /bin/nc.traditional   10        manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /bin/nc.traditional to provide /bin/nc (nc) in manual mode
$ realpath /bin/nc
/bin/nc.traditional
$ realpath /bin/netcat
/bin/nc.traditional

/bin/ncシンボリックリンクと確認済みシンボリックリンクの両方を変更します/bin/netcatが、ORを入れて/bin/nc.traditionalも依然として優先順位が高いため、スタイルは変更されません。ncnetcat/usr/local/bin//bin$PATH

$ /bin/nc -h |& head -1
[v1.10-41]
$ nc -h |& head -1
GNU netcat 0.7.1, a rewrite of the famous networking tool.
$ type -a nc | head -1
nc is /usr/local/bin/nc

netcatにはより多くの種類があります。国立猫ソカットsbdネットキャット6インターネット猫クリプトキャット

1更新された実際のシンボリックリンク/etc/alternatives/ncはとです/etc/alternatives/netcat。ここでは、すでに/bin/ncおよびそれぞれへのシンボリックリンク/bin/netcatです。/etc/alternatives/nc/etc/alternatives/netcat

答え2

私が実行すると、nc --version次のようになります。

netcat (The GNU Netcat) 0.7.1
Copyright (C) 2002 - 2003  Giovanni Giacobbi

This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of this program under the terms of
the GNU General Public License.
For more information about these matters, see the file named COPYING.

Original idea and design by Avian Research <[email protected]>,
Written by Giovanni Giacobbi <[email protected]>.

おそらくBSDのバージョンも具体的でしょう。

答え3

Macの場合(GNUバージョンが表示されますが):

$ nc -h
GNU netcat 0.7.1, a rewrite of the famous networking tool.
[ further output snipped ]

Linuxマシン(特にUbuntu)の場合:

$ nc -h
[v1.10-41]
[ further output snipped ]

netcat --version他の回答で提案したように、「無効なオプション」エラーが発生する--versionため-h、一般的なテストのようです。

関連情報