自定义输入域名端口访问get post请求(内含多线程访问同个列表方法)

该博客介绍了如何通过多线程实现自定义协议、域名、端口、参数的HTTP GET和POST请求。适用于处理单个IP、域名,以及B、C段IP的解析。内容涉及os、sys、requests等模块的使用,并提供两个测试API接口的示例。
摘要由CSDN通过智能技术生成

**

通用:多线程平均读取列表,划分占比

适用:自定义按照参数输入域名、端口、参数,协议,进行自定义请求get、post方式,获取返回值。

使用模块:os、sys、re、datetime、threading、from time import sleep,ctime、requests**
参数解析:

  • ag 协议(输入http、https等)
  • ip 域名(后接endinput结尾,方便处理自定义输入),支持单个ip输入,支持单个域名输入,支持ip的B段,C段解析,支持域名解析。 (IPB、IPC段存在算法问题,需要使用到python的IP裤,来对输入的类似哦B、C段IP进行解析,将解析过后的进行get,post方式进行传输。)
  • url 域名子级(按输入作为域名子级)
  • m 请求方式(get or post )如若get返回405 or 404,可切换到post试
  • tag 判断接口返回值中是否存在输入的值
  • t 开启的线程数量,计算每个线程分配url。

以下为测试api接口:

测试1:https://api.github.com/users

python send_packet.py -ag https -ip api.github.comendinput -port “”
-url users -param “” -m get -timeout 10 -tag “123” -t 2

测试2:https://www.wanandroid.com/article/list/0/json python
send_packet.py -ag https -ip www.wanandroid.comendinput -port “” -url
article/list/0/json -param “” -m get -timeout 10 -tag “123” -t 2

import datetime
import sys
import re
import threading
from time import sleep,ctime
import requests

class myThread(threading.Thread):

  """docstring for myThread"""

  def __init__(self, threadID, name, s, e, data):

    threading.Thread.__init__(self)
    self.threadID = threadID
    self.name = name
    self.s = s
    self.e = e
    self.data = data

  def run(self):

    print("Starting" + self.name + ctime())
    #获得锁,成功获得锁定后返回True
    #可选timeout参数,如果不填写则一直阻塞到获取锁
    #否则超时后返回False
    threadLock.acquire()
     #线程需要执行的方法
    printGetPost(self.s,self.e,self.name,self.data)
     # 释放锁
    threadLock.release()



def printGetPost(s,e,name,data):

    try:

        s = int(s)
        e = int(e)
        print(s)
        print(e)

        for i in range(s,e):

            #获取请求体
            url = data["ip_list"][i]
            print(url)

            #定义参数
            params = ""

            #获取超时时间
            timeout = int(data["timeout"])

            #获取请求方式
            mean = data["mean"]

            try:
                temp = data["ip_list"][i].split("?")[-1].split("&")


                for v in range(0,len(temp)):

                    temp[v] = temp[v].split("=")
            except Exception as e:
                pass

            print(eval(str(temp)))

            time_stamp = datetime.datetime.now().timestamp()

            temp_ip_filename = str(data["ip_list"][i].split("//")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值