我试图在一个文件中创建两个服务器,但他们显然在互相争斗

有人想办法让他们和好吗?

这是我的代码:# -*- coding: utf-8 -*-

import socket

import sys

import re

import base64

import binascii

import time

import zlib

import sys

import StringIO

import contextlib

import smtplib

from threading import Thread

"""

Thanks to :

People from irc :

Flox,Luyt

People from stack Overflow :

Philippe Leybaert,Platinum Azure,methodin,Suresh Kumar,S.Lott,MatTheCat,

kevpie,Ignacio Vazquez-Abrams,adamk,Frédéric Hamidi,THC4k,THC4k,Blam

"""

def sendmail(exp,dest,msg):

server = dest.split("@")[1]

s = smtplib.SMTP("localhost")

s.sendmail(exp,dest,msg)

@contextlib.contextmanager

def stdoutIO(stdout=None):

old = sys.stdout

if stdout is None:

stdout = StringIO.StringIO()

sys.stdout = stdout

yield stdout

sys.stdout = old

class Serversmtp(Thread):

def __init__self(self):

Thread.__init__(self)

def run(self):

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

self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

server_address = ('localhost', 25)

print >>sys.stderr, 'starting up on %s port %s' % server_address

self.sock.bind(server_address)

# Listen for incoming connections

self.sock.listen(1)

self.message = ""

while True:

# Wait for a connection

print >>sys.stderr, 'waiting for a connection'

connection, client_address = self.sock.accept()

try:

print >>sys.stderr, 'connection from', client_address

# Receive the data in small chunks and retransmit it

while True:

data = connection.recv(1024)

print >>sys.stderr, 'received "%s"' % data

if data:

self.message = self.traitement(data)

connection.sendall(self.message)

connection.close()

connection, client_address = self.sock.accept()

else:

print >>sys.stderr, 'no more data from', client_address

break

finally:

# Clean up the connection

connection.close()

self.sock.close()

class Pages :

def root(self,cgi=None):

return """eNqtVV1zqkgQfedX3MrrbNVREBnu5ubWCCoajPiRaHyTxEGNiAKC8uu3B7Nb+7JvO1QNNAOnT5/u

6Xnc5vHhSXsMk8/bk5bv7tdjmNK7XRz9yNKPXw+f63z9cxevow12H8mf4TrbtFt/CCE6QnRFl2Z1

H4hOoh57EU2OmsRETQPx9/p/D+3fhhXMLRhVrw07yC/ANPSuaOi6BTavihB2UZiwrW1D2sNNp8KL

lwhUNheFLaRwoQVeJtDotUXAa0AUlYUmMwzw0YlV6KVeievixiUPM8zhndMrOexaBWhYyPn5hKqn

C3BLi0oPQWvgojJtAmSbyMXE+BLEIOMFD5N8j65/NFDeTAIMcunDtXxycKnsgBdnJsFxVMCWZhf2

83ZqYPz+Tgz7PVFwvlWAA+GgaloiQINhj5d2OELpNCxw5yotOFlgoYyZXXBxvqSYpW6oESKDokxr

b6vuAdVsSAyt/cRFUDsYdzqSMznx6CMDsN0TB29lIwJMXUkOmi1ykF58aM/n4wL2MeOKLYG2xvsl

KtZ3JTe/SNRgUJIE+pAYs61ykHRJAsc6FSTEpRaOwV6WrGClZmz2OGTYgKWVjftgqNrQ9Xgm+XlP

jMbDEWXtMiHG5q70yUFE9q0nAjaezXwc31otWEOmvRUQX30LVp4GKjuQsNW9DT+FfkmmBc8VYDB8

V4BzJcFXqSTgZOvPZNtbiiA5fB01tKdvXsA2s2iPuBtNAS8xFLnCgjmutmj210MCPNAP49UHJeWy

pJBbtW0OyNYDIbmtGGvjAZVBe7voSfYxv7o4xbYDq73bBncNmYqbH9cFuPykH15WVJfVZkWMjJiy

HgwnHQr5lQBb2r6mnNGLtickk8udRDNtZxSqktDktBOMlEVgxk4vFLaBONz1cLs5KuQ4CjA+EWq1

WWhK1AM9j09dAmSkie1sqZCtjRfW2Sigc0pSvigTEvaVRDeXE5JgxMz7Oguz1REDT3xqhPimRDwo

D6bK2nroSJ6v5inc2+W5ri2gTnTjHJMEB3KI55WYo3iLHPDdZCHvjKlo98AtOl3B+/0PH93Z+opr

N8oL3uuOKgjhb1GKTlMSGlU+UJECJh8D/eXEx63/ToDTtSgw1vYHeRe5Hvbk1TbQEW5DAZDyrggM

AvQqsoUpyc7T728L2jpMD505AVJE3I5JM3QWVNmNM3PxnTy1taZfYYSyK5ikbkJsxMQzUY4EV91l

Q8UpXFm3jeDePS6Dl4lGGiwJcPROaS/6A2Lvx8Z3WTQ/5zrKZGSCABTD0mM1Y+VAhiqCjGyn9d2+

SDPqX8wPq4DFyxtV8mvZhd3PtlRYSlQLxKhKUCrAzyVE5LdVyATofEugK9ui7lF32oja8f8x/mnb

d8Bfvx6e7kfHb+2U7o75j4c8yZMH9qDePmi/nzTtEfej5hH1yfMXx7rT9A=="""

def favico(self):

return """eNqdk39MVWUYx99zDrZkJJc/dGtqsVZKFmttFhcuF0wXC1bTZmq0qVuWa8t+/NXPW1MQCk3FMBKs

LNauoq6AAr2zsFLLHAN1YQXJryzJewXuhV29HO759JyX//uj9933vOe8e7/f5/k+73OUMmR6PEqe

meq5FKXmKKWyBLIlO9P7/zUiEzaB02GWt43ycHOUx2St6YwTtxP0DZ6n+LV5LH5DURgwWRJQ5L+p

eEi+Xa4zZbP+aD9pByLMaR5jdkuUuV9NcNuhKIFTI4DD0bON3P+Kha/coLDMouAtRYHwl72u6IvE

mNvwG57QddJCUdJbY6S3jGmN+w5fYTwhCnackor55FZK3AqTfFmXbDbxSx4T9g1ygh2or0cxTzuk

nrSZ2R5HHbpKSVMvjuPAlMOq3XexuErh26HwC3/ZlhmShwFJOPfPON6mTlKb+lGtf2J+McSixov8

Hom6VAaGf6Ww8hZyq8X7exb+KpOCCvGwRXHueJDkSFj77B6bpOnSMLVdfVwdv4477KlJXggWs2iH

gbdG4otG7nbx8K5oicbO4jv4eJ2XlrdX8131i4z0dIlSUqZDOBbm+YNFZAs3v1a4NdPw7xJsE2xV

NJQu5PNV8/ik5Gb2PpJBdLhfe74cGeTx+gVk75F4H5r4BF55970vddtl4JccvFKPg6tn89FyD8GX

ltLesFX7tSXvn3tOcPurJg/sU+TUCeol3z2GhteNv92g4B2D/esWcrH9CI7UMREbpe/Ep1wb6tEe

6o5VcG+ZxKy3yNtrkSMecgV5u6UPxMdS4V8b7NW1i0eHad2UxfEnFKG1s7jcFdL7+5rryHx5Pjkf

SMxaS/t/sGom2c/mkX7PNvf6NC40lhFaqTj7TArfPmlyprpU58ANyLr7J2669QcyFjSTkdnGDI/0

izmIMrqF7PYHtAd8/LhWeBtNTj1l0rlzja6DO1asvESKmpDzYKmkrOPS+39hmT3Td2zbtG26kzMb

FF0bFd+XKi58We6mr3uvqGgAQyVQ1hSGkRCNMdEIi0a/2yDa57HyFYTWKDo2mHzz9Cxif/+h76L7

lzipaVfkbBLLcITnxo9LPhHxMKD/QeQfHOrtILg+k88eTeH8kUqxlGQ0miCv8KT2aZqTWsNU03yl

RjR3s6H+93C5/wIoQoi6"""

class Serverhttp(Thread):

def __init__(self):

Thread.__init__(self)

self.Pages = Pages()

self.GET = re.compile("GET.*?HTTP")

self.POST = re.compile("POST.*?HTTP")

self.balisep = re.compile("",re.DOTALL)

def run(self):

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

self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

server_address = ('localhost', 41000)

print >>sys.stderr, 'starting up on %s port %s' % server_address

self.sock.bind(server_address)

# Listen for incoming connections

self.sock.listen(1)

self.message = ""

while True:

# Wait for a connection

print >>sys.stderr, 'waiting for a connection'

connection, client_address = self.sock.accept()

try:

print >>sys.stderr, 'connection from', client_address

# Receive the data in small chunks and retransmit it

while True:

data = connection.recv(1024)

print >>sys.stderr, 'received "%s"' % data

if data:

self.message = self.traitement(data)

connection.sendall(self.message)

connection.close()

connection, client_address = self.sock.accept()

else:

print >>sys.stderr, 'no more data from', client_address

break

finally:

# Clean up the connection

connection.close()

self.sock.close()

def decompress_img(self,img):

img = zlib.decompress(base64.decodestring(img))

return img

def decompress_html(self,html) :

page = "HTTP/1.0 200 OK\r\nContent-type:text/html;charset=utf8\r\n\r\n"

page+=zlib.decompress(base64.decodestring(html))

commands = self.balisep.findall(page)

print commands

for c in commands :

command = c.replace(" ","")

command = c.replace("","")

command = command.replace(" ?>","")

command = command.replace("?>","")

print command

with stdoutIO() as s:

exec(command)

page = page.replace(c,s.getvalue())

return page

def traitement(self,data):

url = self.POST.findall(data)

print url

print len(url)

url = self.GET.findall(data)

print url

url = url[0].replace("GET","")

url = url.replace("POST","")

url = url.replace("HTTP","")

url = url.replace(" ","")

print url

if url == "/favicon.ico":

return self.decompress_img(self.Pages.favico())

else :

return self.decompress_html(self.Pages.root())

if __name__ == "__main__":

swww = Serverhttp()

swww.start()

ssmtp = Serversmtp()

ssmtp.start()

sendmail("test@test.com","b@gmail.com","hello")

print "toto"

向所有人致以问候和感谢

python3攻击服务器_Python服务器用套接字互相攻击相关推荐

  1. 从服务器断开并删除套接字

    既然我们已经讲解到了这里,那么索性把数据收发完成后协议栈要执行的操作也讲一讲吧.这样一来,从创建套接字到连接.收发数据.断开连接.删除套接字这一系列关于收发数据的操作就全部讲完了. 毫无疑问,收发数据 ...

  2. python中typeerror怎么解决_Python 3中套接字编程中遇到TypeError: 'str' does not support the buffer interface的解决办法...

    目前正在学习python,使用的工具为python3.2.3.发现3x版本和2x版本有些差异,在套接字编程时,困扰了我很久,先将python核心编程书中的例子 代码如下: 服务器端: #Echo se ...

  3. 阿里云python服务器_Python服务器

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. android 手机 与 python服务器_Python服务器与多种客户端(Python/Java/Android)之间的通信...

    概述: 我们不会一直满足于客户端程序的开发,因为太过受限了.为了打破这样的受限,你需要做的就是去编写服务器端代码.以及如何在服务器与客户端之间的通信.以下将对此以Python为服务器,并分别以Pyth ...

  5. android 手机 与 python服务器_python服务器与android客户端socket通信实例

    本文实例讲述了python服务器与android客户端socket通信的方法.分享给大家供大家参考.具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: #server.p ...

  6. c 套接字服务器端发送消息,从客户端C、服务器Python Issu发送套接字

    我当前的应用程序包括一个C客户机使用TCP将文件发送到Python服务器.它将生成文件的哈希值并将信息发回.我可以让它与python客户机一起工作,但是在将客户机迁移到C时遇到了问题.python服务 ...

  7. python 两台机器之间传递数据_Python:通过套接字在两台计算机之间发送数据

    我正在开发一个脚本,可以在两台不同的计算机之间传输数据,并可以访问互联网.我正在使用 python的socket标准模块.当我在单台计算机上运行客户端和服务器时,它工作正常,但是当它们在不同的计算机上 ...

  8. python编程示例_Python套接字编程–服务器,客户端示例

    python编程示例 Good Day Learners! In our previous tutorial, we discussed about Python unittest module. T ...

  9. 套接字的连接(服务器与客户端一对一的连接)

    套接字:是一种通信机制,通过这种机制,客户/服务器系统的开发工作既可以在本机可以络进行.                                   注:套接字的创建和使用与管道是有区别的,套 ...

最新文章

  1. 服务没有报告任何错误。 请键入 NET HELPMSG 3534 以获得更多的帮助。
  2. 初创公司技术困境:弹性部署与详尽测试
  3. 自动添加html结束标志,XHTML标签都有一个结束标记
  4. VTK:InfoVis之PassThrough
  5. 2021年,腾讯研发人员增长41%,Go首次超越C++成为最热门语言
  6. tgp饥荒 服务器无响应,tgp饥荒联机版缺少fmod_event.dll文件怎么办?具体解决方法介绍...
  7. 七、PHP框架Laravel学习笔记——资源控制器
  8. 字符流读取的全部方法
  9. a0图框标题栏尺寸_a0图纸尺寸(a0图纸标题栏尺寸标准国标)
  10. XXS靶场haozi
  11. 阿里云DDNS+iKuai 软路由+证书安装
  12. 破局“人工智能+大数据”产业痛点,保险极客百万医疗震撼出击
  13. 零基础深入浅出主成分分析PCA
  14. ubuntu如何杀进程_ubuntu查看并杀死进程
  15. WEB应用容器详细介绍
  16. linux开机引导进程是什么,Linux系统开机启动流程介绍
  17. 公众号如何引流?小程序也可以疯狂引流
  18. 程序员如何减掉小肚腩
  19. 文件不以‘%PDF-’开始 解决方案
  20. 数控雕刻机的工作原理及主要用途

热门文章

  1. 机器人教练走进驾校_机器人教练亮相驾校 | 学员体验后直呼受用!
  2. 跨平台之uni-app
  3. php求解鸡鸭同笼,鸡兔同笼的9种解法
  4. STM32驱动WK2168串口扩展芯片完整教程
  5. MongoDB基础教程
  6. ARM立即数的构成和有效立即数的判断
  7. matlab无向图 有向图画法
  8. 三维空间求三角形的外心
  9. js下流媒体的在线播放
  10. 说说short s = 1; s = s + 1;有没有问题?如果有怎么解决?