调用OVH Python API查询IP mitigation状态报无效URL错误如何解决
错误根因
- 认证参数配置错误:OVH查询IP防护状态的接口要求身份认证,你传入
_need_auth=False关闭了认证逻辑,导致服务端无法识别请求身份,返回无效URL错误 - 路径参数格式错误:接口
mitigation后的参数仅需填写纯IP地址,不需要携带/32子网掩码后缀 - 多余的URL转义操作:OVH官方Python封装库会自动对路径参数做URL转义,你手动调用
quote()处理IP段的/字符,会将其转义为%2F,导致服务端无法正确识别路径层级
修正后的代码
import json import ovh client = ovh.Client( endpoint='ovh-ca', application_key='xxxxxxx', application_secret='xxxxxxx', consumer_key='xxxxxxxxx' ) ipblock = "xxxx/28" # 仅保留纯IP,去掉/32后缀 ipOnMitigation = "xxx" # 去掉手动quote和_need_auth参数,客户端默认开启认证 result = client.get(f'/ip/{ipblock}/mitigation/{ipOnMitigation}') # 格式化输出 print(json.dumps(result, indent=2))
补充校验项
- 确认你使用的
application_key、application_secret、consumer_key对当前IP段有可读权限 - 确认你的OVH账号归属区域为加拿大区,若为其他区域请替换
endpoint为对应区域的参数值
内容的提问来源于stack exchange,提问作者Dolphinmaybe
相关产品推荐
相关产品推荐

