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數據包
原始套接字就是這樣的呀