首先,我们用webpy写一个简单的网站,监听8080端口,返回“Hello, EverET.org”的页面。

然后我们使用我们的forwarding.py,在80端口和8080端口中间建立两条通信管道用于双向通信。

此时,我们通过80端口访问我们的服务器。

浏览器得到:

然后,我们在forwarding.py的输出结果中可以看到浏览器和webpy之间的通信内容。

代码:

#!/usr/bin/env python

import sys, socket, time, threading

loglock = threading.Lock()

def log(msg):

loglock.acquire()

try:

print '[%s]: \n%s\n' % (time.ctime(), msg.strip())

sys.stdout.flush()

finally:

loglock.release()

class PipeThread(threading.Thread):

def __init__(self, source, target):

threading.Thread.__init__(self)

self.source = source

self.target = target

def run(self):

while True:

try:

data = self.source.recv(1024)

log(data)

if not data: break

self.target.send(data)

except:

break

log('PipeThread done')

class Forwarding(threading.Thread):

def __init__(self, port, targethost, targetport):

threading.Thread.__init__(self)

self.targethost = targethost

self.targetport = targetport

self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

self.sock.bind(('0.0.0.0', port))

self.sock.listen(10)

def run(self):

while True:

client_fd, client_addr = self.sock.accept()

target_fd = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

target_fd.connect((self.targethost, self.targetport))

log('new connect')

# two direct pipe

PipeThread(target_fd, client_fd).start()

PipeThread(client_fd, target_fd).start()

if __name__ == '__main__':

print 'Starting'

import sys

try:

port = int(sys.argv[1])

targethost = sys.argv[2]

try: targetport = int(sys.argv[3])

except IndexError: targetport = port

except (ValueError, IndexError):

print 'Usage: %s port targethost [targetport]' % sys.argv[0]

sys.exit(1)

#sys.stdout = open('forwaring.log', 'w')

Forwarding(port, targethost, targetport).start()

微信

分享

相关标签:Python 端口转发 重定向 端口

本文原创发布php教程 ,转载请注明出处,感谢您的尊重!

上一篇:在漏洞利用Python代码真的很爽

下一篇:Python备份Mysql脚本

相关文章

相关视频

在Django框架中运行Python应用全攻略

在Python的Django框架中创建和使用模版

python获取元素在数组中索引号的方法

浅谈python中截取字符函数strip,lstr...

Python实现TCP/IP协议下的端口转发及重定...

Python 简介

python端口转发_Python实现TCP/IP协议下的端口转发及重定向示例相关推荐

  1. python实现端口转发_Python TCP/IP协议下实现端口转发及重定向菜鸟教程

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 首先,我们用webpy写一个简单的网站,监听8080端口,返回"Hello,EverET ...

  2. php端口转发源码,Python实现TCP/IP协议下的端口转发及重定向示例

    首先,我们用webpy写一个简单的网站,监听8080端口,返回"Hello, EverET.org"的页面. 然后我们使用我们的forwarding.py,在80端口和8080端口 ...

  3. TCP/IP协议中的端口

    本文所述端口都是逻辑意义上的端口,是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等. 我们这里将要介绍的就是逻辑意义上的端口. ...

  4. TCP/IP协议号和端口

    TCP/IP协议号和端口类似于PC机的并口或串口,也可以将其想象成交通中的交叉路口.程序员使用TCP/IP协议号和端口的目的是在TCP/IP的高层(传输层和应用层)为用户数据包选择路径,只不过协议号用 ...

  5. Python Web学习笔记之TCP/IP协议原理与介绍

    HTTP.FTP.SMTP.Telnet等等协议,哦!那个HTTP协议啊就是访问网页用的那个协议啊然后那个······其实······你懂得,我们应该从实际来了解他,理解网络协议的作用与功能,然后再从 ...

  6. TCP/IP协议中的一些常用端口简单讲解

    (源自http://bbs.360.cn/3232114/17010996.html) 那么TCP/IP协议中的端口指的是什么呢?如果把IP地址比作一间房子 ,端口就是出入这间房子的门.真正的房子只有 ...

  7. TCP/ip 协议端口范围 详解

    端口号的范围是从1-65535 端口的概念:  在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem.集线器.交换机.路由器用于连接其他网络设备的接口,如RJ ...

  8. TCP/IP协议端口分配规则与分类

    简述 TCP/IP 协议中的端口在报头中占2个字节即16位,范围是从0-65535.端口号用来表示和区别网络中的不同应用程序 端口分类 0-1023之间的端口号,也叫Well Known ports. ...

  9. TCP/IP协议、端口等相关【1】

    TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协 ...

最新文章

  1. java向量vector类,java数据结构——Vector(向量类)
  2. ValueError: Classification metrics can‘t handle a mix of multiclass and unknown targets
  3. 今晚直播 | 清华大学​高天宇:对比学习及其在NLP中的应用
  4. 图论--拓扑排序--模板
  5. 均值(Mean)和均值标准误差(S.E. Mean)
  6. Oracle function注释
  7. [CSharp]用VSS还是TFS呢?
  8. flink API之 Environment
  9. java算法-递归算法思想
  10. pixel 1 欧版电信破解4G,安卓P亲测可用(打电话+4G上网)
  11. 如何调整Exadata DB节点文件系统大小
  12. 虚拟存储器的基本概念
  13. 获取某年某月的第一天是星期几
  14. UEditor定制工具栏图标
  15. html 动态加载的菜单 当菜单点击一下,打开接着又关闭
  16. 【信息安全案例】——网络信息面临的安全威胁(学习笔记)
  17. C语言常见头文件汇总
  18. [Vue warn]: Invalid vnode type when creating vnode: .
  19. useImperativeHandle
  20. 学术圈很火的 超材料、超表面、超透镜:什么时候可以代替传统透镜?

热门文章

  1. 泡泡提示加强版 完美支持XHTML(JavaScript)--zhuan
  2. 贪心算法—建立雷达(POJ 1328)
  3. 如何快速打好java基础_学习Java课程时如何才能打好基础呢?
  4. python用二维码共享文档_[源码和文档分享]基于Python的QR二维码的生成与识别程序...
  5. 26日直播预告丨 经典知识库:ASM元数据简介及案例分享
  6. 今晚直播丨Oracle数据库SQL执行计划的取得和解析
  7. ORACLE数据库的连接
  8. 7个连环问揭开java多线程背后的弯弯绕
  9. 3种双集群系统方案设计模式详解
  10. 【华为云技术分享】干货!!卷积神经网络之LeNet-5迁移实践案例