zoukankan      html  css  js  c++  java
  • TCP/UDP客户端

    Python 网络编程————模块socekt

    在渗透测试的过程中,经常会遇到需要创建一个TCP客户端来连接服务器、发送垃圾数据、进行模糊测试活进行其他任务的情况。

    简单的TCP客户端代码:

    #!/usr/bin/env python3.5
    #filename = TCP_client.py

    import socket

    target_host = "www.qq.com"
    target_port = 80

    #建立一个socket对象

    client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    #连接客户端
    client.connect((target_host,target_port))

    #发送一些数据
    a = "GET / HTTP/1.1 Host: qq.com "
    b =bytes(a,encoding='utf-8')
    client.send(b)

    #接收一些数据
    response = client.recv(4096)

    print(response) 

    解析:

    AF_INET =  IPv4 address-family

    SOCK_STREAM = TCP-Client

    在"#发送数据"这个代码端中,python3要求.send( )之后必须是bytes,所以通过我们把需要发送给客户端的数据

    通过变量 a 指定,这个a 是一个字符串。通过python3内置函数 bytes( )来转换从类型bytes,然后发送给client

    UDP客户端:

    import socket

    target_host = '127.0.0.1'
    target_port = 53

    #建立一个socket对象
    client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

    #转换str到bytes
    a = "AAABBBBCCCC"
    b = bytes(a,encoding='utf-8')

    #发送一些数据
    client.sendto(b,(target_host,target_port))

    #接收数据
    data, addr =
    client.recvfrom(4096)

    #打印数据
    print(data)

    大体上,TCP与UDP客户端是没有很大区别的,只是套接字类型改为SOCK_DGRAM,同时不需要事先建立连接,

    因为UDP是面向无连接的。在发送数据的时候只需要使用函数sendto( )

    最后使用recvfrom( )函数来接收返回的数据包。

  • 相关阅读:
    JDK所有版本
    application.yml配置log日志
    eclipse配置lombok
    Eclipse配置springboot
    java 连接mongodb
    MongoDB shell操作
    mysql插入一万条数据
    Web设计精髓(转)
    SyntaxHighlighter -- 代码高亮插件
    input之placeholder与行高的问题。
  • 原文地址:https://www.cnblogs.com/alben-cisco/p/6885085.html
Copyright © 2011-2022 走看看