【Raspberry Pi网络编程2+】nc命令

2016-03-191.1万
AI 快速预览详细 收起
本文介绍了Raspberry Pi上的nc命令,它是一个支持TCP/UDP协议的小工具。文章提供了三个具体示例:端口扫描、文件传输和聊天工具。例如,使用nc -v -w 2 192.168.2.34 -z 21-24可以扫描指定IP地址的端口。此外,还提供了Python实现代码,帮助用户更好地理解和使用nc命令。


nc命令是用于两台机器之间互相通信的命令。


在terminal中输入
  1. man nc
复制代码
得到如下所示manual:
【Raspberry Pi网络编程2+】nc命令图1
nc(netcat)就是支持TCP/UDP传输协议的一个小工具。

下面是关于nc命令的用法,摘取原文中的3条(原文地址:http://blog.csdn.net/xifeijian/article/details/9348277):

linux nc命令使用详解
功能说明:功能强大的网络工具
语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
参 数:
-l  使用监听模式,管控传入的资料。
-v 详细输出--用两个-v可得到更详细的内容
-w<超时秒数> 设置等待连线的时间。
-z  使用0输入/输出模式,只在扫描通信端口时使用。

nc使用示例

1. 端口扫描
# nc -v -w 2 192.168.2.34 -z 21-24
nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused
Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused

2. 192.168.2.33拷贝文件到192.168.2.34
在192.168.2.34上: nc -l 1234 > test.txt
在192.168.2.33上: nc 192.168.2.34 < test.txt

3. 简单聊天工具
在192.168.2.34上: nc -l 1234
在192.168.2.33上: nc 192.168.2.34 1234
这样,双方就可以相互交流了。使用ctrl+C(或D)退出。

楼主使用树莓派的IP地址亲试过这三条,表示很好用。

其实nc这个命令也可以用Python实现,其实现也是基于socket。
以下为源代码(基于http://stackoverflow.com/questions/1908878/netcat-implementation-in-python):
  1. import socket
  2. def netcat(hostname, port, content):
  3.      s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4.      s.connect((hostname, port))
  5.      s.sendall(content)
  6.      s.shutdown(socket.SHUT_WR)
  7.         while 1:
  8.                 data = s.recv(1024)
  9.                 if data == "":
  10.                         break
  11.                 print "Received:", repr(data)
  12. print "Connection closed."
  13. s.close()
复制代码

上述代码 - - 楼主其实并没有亲测过……有兴趣的童鞋亲测一下然后告诉我结果?




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
yoyojacky
yoyojacky
代码缩进
- 没有更多了 -