另外一个关于发包的例子

using  System;
using  System.Text;
using  System.Windows.Forms;
using  System.Collections;
using  System.Net;
using  System.Net.Sockets;
using  System.Runtime.InteropServices;

        
public   string  GetTicket( string  ChallengeString)
        
{
            
string getTicketCmd = "GET https://login.passport.com/login2.srf HTTP/1.1 " + "Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in="+this._userName.Replace("@""%40"+ ",pwd=" + this._password + "," + ChallengeString + " " + "Host: login.passport.com ";
            Socket socket 
= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, 
1);
            IPEndPoint ipepServer 
= new IPEndPoint(IPAddress.Parse("10.0.0.172"),80);
            socket.Connect(ipepServer);
            
if (socket != null)
            
{
                Encoding ASCII 
= Encoding.ASCII;
                Byte[] sendCmd 
= ASCII.GetBytes(getTicketCmd);
                
int sendState = socket.Send(sendCmd, sendCmd.Length, 0);
                UTF8Encoding UTF8 
= new UTF8Encoding();
                Byte[] RecvBytes 
= new byte[1024];
                
string data = "";
                
int bytes = 0;
                bytes 
= socket.Receive(RecvBytes, RecvBytes.Length, 0);
                data 
= UTF8.GetString(RecvBytes, 0, bytes);
                
string[] tmpDataList = data.Split(new char[] ''' });
                socket.Shutdown(SocketShutdown.Both);
                socket.Close();
                
return tmpDataList[1];
            }

            
else
            
{
                
return "";
            }

 
下面是一个基于Python的NFQUEUE的发包示例: ```python import socket from struct import pack # 构造IP头部 def make_ip_header(src_ip, dst_ip): ip_ver = 4 ip_ihl = 5 ip_tos = 0 ip_tot_len = 40 ip_id = 54321 ip_frag_off = 0 ip_ttl = 255 ip_proto = socket.IPPROTO_TCP ip_check = 0 ip_saddr = socket.inet_aton(src_ip) ip_daddr = socket.inet_aton(dst_ip) ip_ihl_ver = (ip_ver << 4) + ip_ihl ip_header = pack('!BBHHHBBH4s4s', ip_ihl_ver, ip_tos, ip_tot_len, ip_id, ip_frag_off, ip_ttl, ip_proto, ip_check, ip_saddr, ip_daddr) return ip_header # 构造TCP头部 def make_tcp_header(src_port, dst_port): tcp_seq = 0 tcp_ack_seq = 0 tcp_doff = 5 tcp_flags = 0x02 tcp_window = socket.htons(5840) tcp_check = 0 tcp_urg_ptr = 0 tcp_offset_res = (tcp_doff << 4) + 0 tcp_header = pack('!HHLLBBHHH', src_port, dst_port, tcp_seq, tcp_ack_seq, tcp_offset_res, tcp_flags, tcp_window, tcp_check, tcp_urg_ptr) return tcp_header # 构造TCP数据 def make_tcp_data(): data = b'Hello, World!' return data # 发送数据包 def send_packet(src_ip, dst_ip, src_port, dst_port): # 构造IP头部 ip_header = make_ip_header(src_ip, dst_ip) # 构造TCP头部 tcp_header = make_tcp_header(src_port, dst_port) # 构造TCP数据 tcp_data = make_tcp_data() # 计算TCP校验和 pseudo_header = pack('!4s4sBBH', socket.inet_aton(src_ip), socket.inet_aton(dst_ip), 0, socket.IPPROTO_TCP, len(tcp_header) + len(tcp_data)) pseudo_header = pseudo_header + tcp_header + tcp_data tcp_check = checksum(pseudo_header) # 构造TCP头部(包含校验和) tcp_header = pack('!HHLLBBH', src_port, dst_port, 0, 0, (5 << 4) + 0x02, tcp_check, tcp_header[6]) # 构造TCP数据包 packet = ip_header + tcp_header + tcp_data # 创建一个原始套接字 s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) # 发送数据包 s.sendto(packet, (dst_ip, 0)) # 计算校验和 def checksum(data): if len(data) % 2: data = data + b'\x00' words = [int.from_bytes(data[i:i + 2], 'big') for i in range(0, len(data), 2)] chksum = sum(words) while chksum >> 16: chksum = (chksum >> 16) + (chksum & 0xffff) chksum = ~chksum & 0xffff return chksum # 发送数据包 send_packet('192.168.1.100', '192.168.1.1', 8888, 80) ``` 该示例可以构造一个TCP数据包并发送到目标IP地址和端口号。您可以根据需要修改源IP地址、目标IP地址、源端口号和目标端口号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值