发送数据包

时间:2017-08-30 17:25:00

标签: python-2.7 sockets packet-sniffers

我定义了IP Header和Payload,我不知道如何将数据包添加到数据包并将数据包发送到服务器。

我试试这个,但我收到了错误:

IPPACKETNAME() + PayLoad

1 个答案:

答案 0 :(得分:0)

在不知道更多内容的情况下,不确定这是否适用于您的情况,但此处是向服务器发送发布请求的功能。 requests.post可以更改为您需要的任何类型的请求。 e.g。

requests.get

requests.put

import requests
def PostRequest(url,data1):
    r=requests.post("'"+url+"'",data=data1)
    return r.content

用法:

response= PostRequest("http://192.168.1.7","DATA")

修改

这是将原始数据包发送到服务器的一些代码。

import socket
import sys

# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Connect the socket to the port where the server is listening
server_address = ('localhost', 80)
#print >>sys.stderr, 'connecting to %s port %s' % server_address
sock.connect(server_address)



    # Send data
    message = input()
    message = str(message).encode()
    print('sending "%s"' % message)
    sock.sendall(message)

    # Look for the response
    amount_received = 0
    amount_expected = len(message)


    data = sock.recv(16)
    amount_received += len(data)
    print('received "%s"' % data)


    print('closing socket')
    sock.close()