【问题标题】:Send POST to range of IP addresses including non-existent [duplicate]将 POST 发送到 IP 地址范围,包括不存在的 [重复]
【发布时间】:2021-06-19 11:45:28
【问题描述】:

努力寻找正确的短语来查找类似的问题,如果重复,敬请见谅。

我有以下从 Postman 生成的代码,用于向 192.168.0.18 发送一个简单的 HTTP 请求。我正在寻找一个文件,它将向从 192.168.0.10 到 192.168.0.100(或任何其他范围)的每个 IP 发送相同的请求,但需要注意的是每个 IP 上都不会有一个设备

仅供参考,这只是我们培训室的一个小噱头。笔记本电脑将响应此请求,但房间内随时可能有任意数量的笔记本电脑,IP 地址在此范围内,这是我无法更改的一个因素,因为其他限制。

提前致谢

请求:

import requests

url = "http://192.168.0.18:4430/titan/set/2/Panel/Screen/LampIntensity"

payload="100"
headers = {
  'Content-Type': 'text/plain'
}

response = requests.request("POST", url, headers=headers, data=payload)


【问题讨论】:

  • 您进行了哪些尝试,这给您带来了哪些问题?
  • @LotB 缺少复制和粘贴请求,不多 - 我是一个非常新的学习者,因此寻求帮助。我想我需要使用“for i in range (10,100)”循环或类似的循环,但很难将字符串和整数混合到 URL 中

标签: python python-requests httprequest


【解决方案1】:
import requests

base_url = "http://192.168.0.{}:4430/titan/set/2/Panel/Screen/LampIntensity"

payload="100"
headers = {
  'Content-Type': 'text/plain'
}

for i in range(10, 100): # ip range
  try:
    response = requests.post(base_url.format(i), headers=headers, data=payload, timeout=1)
  except:
    print("No ip found: ", i)

【讨论】:

    【解决方案2】:

    扩展 SlLoWre 使用线程的解决方案。这样就不用很久了

    import requests
    import threading 
    url = "http://192.168.0.{}:4430/titan/set/2/Panel/Screen/LampIntensity"
    
    payload="100"
    headers = {
      'Content-Type': 'text/plain'
    }
    def send_request(num):
        try:
            response = requests.request("POST", url.format(num), headers=headers, data=payload)
        except:
            pass
    thread_list = []
    
    for i in range(0,256):
        t = threading.Thread(target=send_request, args=(i,))
        thread_list.append(t)
        t.start()
    
    for tr in thread_list:
        tr.join()
    
    

    【讨论】:

    • 谢谢你,虽然我收到第 17 行的错误说 t = threading.Thread(target=send_request.args(i,)) AttributeError: 'function' object has no attribute 'args'
    • @AdamDavies 哦,对不起,我修好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2011-02-11
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    • 2016-11-30
    相关资源
    最近更新 更多