You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python Requests无密码登录81端口的管理员账号?

无密码管理员账号登录解决方案

针对你遇到的requests库调用返回401状态码的问题,可尝试以下几种方案:

  • 手动构造Basic Auth请求头
    部分服务器对空密码的HTTP Basic Auth处理逻辑特殊,requests默认的auth参数会生成包含空密码的凭证,但服务器仅接受仅含用户名的凭证。你可以直接构造符合要求的请求头:

    import requests
    import base64
    
    ip = "目标服务器IP"
    # 对"admin:"进行Base64编码(冒号后无内容)
    auth_encoded = base64.b64encode(b'admin:').decode('utf-8')
    custom_headers = {'Authorization': f'Basic {auth_encoded}'}
    
    session = requests.Session()
    response = session.get(url=f'http://{ip}:81', headers=custom_headers)
    print(response.status_code)
    
  • 自定义Auth处理类
    继承requests的HTTPBasicAuth,重写凭证生成逻辑,仅传入用户名部分:

    import requests
    import base64
    from requests.auth import HTTPBasicAuth
    
    class EmptyPassAuth(HTTPBasicAuth):
        def __call__(self, request):
            # 仅使用用户名构造认证字符串
            auth_str = base64.b64encode(f'{self.username}:'.encode()).decode()
            request.headers['Authorization'] = f'Basic {auth_str}'
            return request
    
    session = requests.Session()
    response = session.get(url=f'http://{ip}:81', auth=EmptyPassAuth('admin', ''))
    print(response.status_code)
    
  • 排查是否为表单登录
    若浏览器的登录是页面表单提交而非弹出的HTTP认证窗口,需找到登录接口的参数和地址,用POST请求提交用户名:

    import requests
    
    session = requests.Session()
    # 替换为实际的登录接口路径和表单参数
    login_payload = {'username': 'admin'}
    # 先提交登录请求
    session.post(f'http://{ip}:81/login', data=login_payload)
    # 再访问目标页面
    response = session.get(f'http://{ip}:81')
    print(response.status_code)
    

内容的提问来源于stack exchange,提问作者MYRAmax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:15:40