python发送数据包
‘壹’ 用python怎么发送tcp协议的16进制数据包
一般字符串可以直接发,不是可读的也可以用"\x33\x22"这种发。
如果是一列数之类的,可以用struct的pack打包成字符串发送。
‘贰’ python怎样模拟发送smtp的数据包
一般最好有个smtp服务器,比如说你在163注册个邮箱,这样可以用smtplib通过这个邮箱来发送。以下是示例: #-*- coding:utf8 -*- import smtplib import email import mimetypes from email.MIMEMultipart import MIMEMultipart from email.mime.....
‘叁’ python发送数据包获取返回数据(其他的语言能实现也可以)
使用网络翻译的一个例子,可以翻译你输入的文字,发送需要的内容,获取返回的数据
import urllib.request
import urllib.parse
import json
import time
while True:
url = 'http://fanyi..com/v2transapi'
words = input("输入你想翻译的内容:")
data = {}
data['from'] = 'auto'
data['to'] = 'auto'
data['query'] = words
data['transtype'] = 'translang'
data['simple_means_flag'] = '3'
data = urllib.parse.urlencode(data).encode('utf-8')
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36'
}
req = urllib.request.Request(url, data, headers)
req.add_header('Referer', 'http://fanyi..com/')
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
js = json.loads(html)
# print(html)
# print(js)
print(js['trans_result']['data'][0]['dst'])
time.sleep(1)
‘肆’ win下的python环境能不能发二层数据包arp包
原因:文件的命名与Python的function的命名冲突
修改名称后,发现还是无法运行,检查目录下面是否有
这样子的一个文件,删除即可。
据我的理解,应该是我们自己命名重写了Python的socket函数。
附上我的小代码
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect((‘data.pr4e.org‘, 80))
mysock.send(‘GET hthort.txt HTTP/1.0
‘)
while True:
data = mysock.recv(512)
if ( len(data) < 1 ) :
break
print data;
mysock.close()
‘伍’ 求完整的用python语言实现socket编程,完成数据的发送,接收转发的程序!!急!!!谢谢!!
http://hi..com/bqlymjtdjsbcjtd/item/c7a718cdf44f715abcef6900 应该有点参考价值
‘陆’ 怎样用 python(2.5或其它版本均可)实现图形界面,并向指定IP地址的指定端口发送数据包回答请注明版本
可以使用pygtk来实现图形界面,可以在网上找一些教程。
向指定端口发送数据包,使用socket内置库。下面有一个简单的demo以供参考:
server端:
importsocket
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(("",8081))
whileTrue:
#Receiveupto1,024bytesinadatagram
data,addr=s.recvfrom(1024)
print"Received:",data,"from",addr
client端:
importsocket
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
port=8081
host="localhost"
whileTrue:
msg=raw_input()
s.sendto(msg,(host,port))
望采纳,谢谢支持!
‘柒’ python post数据包
利用qoute和unqoute方法,对数据进行URL编码和解码,能转义和还原这种特殊字符
‘捌’ 怎么用python和原始套接字发送一tcp数据包
TCP的首部格式:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
—Source Port是源端口,16位。
—Destination Port是目的端口,16位。
—Sequence Number是发送数据包中的第一个字节的序列号,32位。
—Acknowledgment Number是确认序列号,32位。
—Data Offset是数据偏移,4位,该字段的值是TCP首部(包括选项)长度乘以4。
—标志位: 6位,URG表示Urgent Pointer字段有意义:
ACK表示Acknowledgment Number字段有意义
PSH表示Push功能,RST表示复位TCP连接
SYN表示SYN报文(在建立TCP连接的时候使用)
FIN表示没有数据需要发送了(在关闭TCP连接的时候使用)
Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。
—Checksum是校验和,16位。
—Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号(Sequence Number字段的值)的偏移。
更多TCP协议的详细信息可以在网上轻易找到,在这里不再赘述。
为了建立一个可以自己构造数据的包,我们使用"SOCK_RAW"这种socket格式,使用"IPPROTO_RAW"协议,它会告诉系统我们将提供网络层和传输层。
s = socket.socket(socket.AF_INET,socket.SOCK_RAW,)
通过这个简单的类,我们可以进行IP头部信息构造
class ip(object):
def __init__(self, source, destination):
self.version = 4
‘玖’ python3 socket的send方法如何发送数据
用如下代码:
name='bruce'
s.send(b'hihi'+name.encode())
要把name变成二进制才能拼接
望采纳
‘拾’ 怎么用python和原始套接字发送一tcp数据包
原始套接字就是这样的呀