工作项目中遇到有用Netcat来实现Windows -> Macos通信,传输文件与数据的。所以想了解一下。
Netcat 简称nc,
是一款简单的Unix工具,使用UDP和TCP协议。 它是一个可靠的容易被其他程序所启用的后台操作工具,同时它也被用作网络的测试工具或黑客工具。 使用它你可以轻易的建立任何连接。内建有很多实用的工具。
查看帮助:
$ nc
usage: nc [-46AacCDdEFhklMnOortUuvz] [-K tc] [-b boundif] [-i interval] [-p source_port]
[–apple-recv-anyif] [–apple-awdl-unres]
[–apple-boundif ifbound]
[–apple-no-cellular] [–apple-no-expensive]
[–apple-no-flowadv] [–apple-tcp-timeout conntimo]
[–apple-tcp-keepalive keepidle] [–apple-tcp-keepintvl keepintvl]
[–apple-tcp-keepcnt keepcnt] [–apple-tclass tclass]
[–tcp-adp-rtimo num_probes] [–apple-initcoproc-allow]
[–apple-tcp-adp-wtimo num_probes]
[–setsockopt-later] [–apple-no-connectx]
[–apple-delegate-pid pid] [–apple-delegate-uuid uuid]
[–apple-kao] [–apple-ext-bk-idle]
[–apple-netsvctype svc] [—apple-nowakefromsleep]
[–apple-notify-ack] [–apple-sockev]
[–apple-tos tos] [–apple-tos-cmsg]
[-s source_ip_address] [-w timeout] [-X proxy_version]
[-x proxy_address[:port]] [hostname] [port[s]]
我们可以使用Netcat
与HTTP
服务器建立连接,以百度为例,使用下面命令与百度建立TCP
连接、$ nc www.baidu.com 80
端口扫描
Netcat
还可以用来做端口扫描,用来发现一些机器上开放的端口
$ nc -zv localhost 9995-9999
我们可以使用Netcat
与HTTP
服务器建立连接,以百度为例,使用下面命令与百度建立TCP
连接
$ nc www.baidu.com 80
数据通信:
建立TCP
连接,只需要执行两行命令,就能实现简单的聊天功能,如在当前MacOS模拟通信测试
打开2个终端界面,一个是监听端-服务端:nc -l 8500
另一个是客户端:nc 127.0.0.1 8500, 回车之后,输入hello, 可以看到前面的终端也收到hello
文件传输:
通过建立TCP连接,可以很方便的在两台主机间传输文件。如要将服务器A上的test.txt发送到服务器B(IP地址为172.16.0.4)上,在服务器B上执行
$ nc -l 8500 > /Users/gdlocal/Documents/ConfigInfo.json
然后在服务器A上执行
$ nc 127.0.0.1 8500 < /Users/gdlocal/Documents/ConfigInfo.json
传输成功,虽然是同一个目录下的同文件 (不同路径会报错) ,但是可以通过文件创建时间是更新来判断是传输成功。
如前面所说项目中遇到客户用Netcat实现一个服务端,由我们来实现客户端向他们传输数据,以下是参考解决方案,使用的是python telnetlib库实现向他传输数据。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/101635.html