python取代netcat过程分析


Posted in Python onFebruary 10, 2018

首先解释几个概念:

TCP:TCP是因特网中的传输层协议,使用三次握手协议建立连接。

IP:Internet Protocol协议的英文名直译就是:因特网协议。

UDP:和TCP一样,是网络传输层协议,UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据。

scoket:

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

Linux中Netcat命令整理参考:https://3water.com/article/134906.htm

我们所要学习的,就是用python模仿netcat来做一些很神奇的事情。

创建一个简单的TCP客户端:

# -*- coding: utf-8 -*- 
import socket 
target_host = "www.baidu.com" 
target_port = 80 
#建立socket对象,建立包含AF_INET,和SOCK_STREAM参数的socket对象。AF_INET参数锁门我们使用IPV4地址,SOCK_STREAM说明这是一个TCP客户端 
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
#连接客户端 
client.connect((target_host, target_port)) 
 
#send some data 
client.send("GET / HTTP/1.1\r\nHsot:baidu.com\r\n\r\n") 
 
#get some data 
response = client.recv(4096) 
print response

创建一个基础的TCP服务器:

# -*- coding: utf-8 -*- 
import socket 
import threading 
 
bind_ip = '0.0.0.0' 
bind_port=9999 
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
server.bind((bind_ip, bind_port)) 
server.listen(5) 
print "[+]listening on %s, %d"%(bind_ip,bind_port) 
 
#创建客户处理线程 
def handle_client(client_socket): 
 #打印客户端发送得到的内容 
 request = client_socket.recv(1024) 
 print "[*]Recived:%s"%request 
  
 #返回数据包 
 client_socket.send("Fuck You All!") 
 client_socket.close() 
  
while True: 
 client, addr=server.accept() 
 print "[*]Accepted connection from:%s:%d"%(addr[0], addr[1]) 
  
 #挂起客户端,处理传入数据 
 client_handler = threading.Thread(target=handle_client,args=(client,)) 
 client_handler.start()

由于之前没有接触过,于是对TCP服务器和TCP客户端有一定的疑问,于是开始寻找答案。

1、客户根据用户提供的IP地址连接到相应的服务器;

2、服务器等待客户的连接,一旦连接成功,则显示客户的IP地址、端口号,并向客户端发送字符串;

3、客户接收服务器发送的信息并显示。

如果没有理解错的话,应该是客户端控制服务端。

将上面的TCP客户端的target_ip修改后,可以控制该服务端。修改send()函数。

Python 相关文章推荐
Python实现的HTTP并发测试完整示例
Apr 23 Python
Python编程实现正则删除命令功能
Aug 30 Python
Python文件操作之合并文本文件内容示例代码
Sep 19 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
python实现矩阵打印
Mar 02 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
python能做哪方面的工作
Jun 15 Python
Python Selenium模块安装使用教程详解
Jul 09 Python
浅谈Python黑帽子取代netcat
Feb 10 #Python
python3爬取淘宝信息代码分析
Feb 10 #Python
Python中property属性实例解析
Feb 10 #Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 #Python
Python中协程用法代码详解
Feb 10 #Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 #Python
Django中Forms的使用代码解析
Feb 10 #Python
You might like
浅析php适配器模式(Adapter)
2014/11/25 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
WebStorm ES6 语法支持设置&babel使用及自动编译(详解)
2017/09/08 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
用Python配平化学方程式的方法
2019/07/20 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
python支付宝支付示例详解
2019/08/22 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
pygame实现弹球游戏
2020/04/14 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
2014年党员个人工作总结
2014/12/02 职场文书
初级职称评定工作总结
2015/08/13 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python