2011-11-02 44 views
0

我将我的脚本输出转发到本地系统的本地端口 -netcat可以监听远程计算机的端口吗?

$ python script.py | NC 127.0.0.1 8033

让我们假设我的电脑有IP 10.0.0.3

现在,有没有可能是一些其他的计算机(IP说10.0.0.4)可以通过NC或其他任何监听到这个端口。请建议。

回答

1

不直接。侦听端口的程序必须位于本地计算机上(在您的示例中为10.0.0.3)。您可以安排本地计算机上的程序侦听并将信息发送到另一台计算机,但只能在主机上建立套接字连接。

+0

感谢乔纳森的轮廓,我也尝试提出的问题之前。除netcat之外还有哪些人可以收听远程端口?谢谢你的帮助。 –

+0

否 - 套接字的设计是这样的,您的程序必须位于要打开它的机器上。 –

+0

如果你的机器在子网上作为你的远程机器,你可以使用类似WireShark的东西来监视数据包。但是现在大多数网络都被切换了,这意味着你的机器只会收到明确指向它的数据包(和广播数据包),所以不可能在另一台计算机上窃听。你必须尝试看看。 –

0

我使用Perl来做到这一点 - 当然你可以使用python。

在Perl中,我使用了IO::Socket::INET库。

我实例的INET一个新实例IPportProtocol,并为comms超时。然后我使用recv方法从该套接字读取数据。

它不像nc那么简单;我希望NC这样做 - 这将是一个容易得多:)

下面是实际的Perl


my $data; 
my socket; 

$socket=IO::Socket::INET->new(PeerAddr => 10.0.0.3, PeerPort-> 8033, Proto => "tcp", Timeout => 1) or die "Unable to open port"; 

$socket->recv($data,bytes_to_read); # Put your chosen read size in stead of bytes_to_read 
print $data;