本帖最后由 iooops 于 2016-3-20 00:31 编辑
nc命令是用于两台机器之间互相通信的命令。
在terminal中输入
复制代码 得到如下所示manual:
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):
- import socket
-
- def netcat(hostname, port, content):
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect((hostname, port))
- s.sendall(content)
- s.shutdown(socket.SHUT_WR)
- while 1:
- data = s.recv(1024)
- if data == "":
- break
- print "Received:", repr(data)
- print "Connection closed."
- s.close()
复制代码
上述代码 - - 楼主其实并没有亲测过……有兴趣的童鞋亲测一下然后告诉我结果?
|