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

如何使用Sanic框架获取默认网络接口的IP地址

能否通过Sanic获取默认网络接口的IP地址

Sanic本身没有封装专门用于获取默认网络接口IP的内置方法,你不需要刻意寻找框架专属的实现,直接在Sanic项目中复用你现有的socket逻辑即可,该逻辑和Sanic运行不存在兼容问题,可以正常拿到预期的IP地址。

如果你需要获取Sanic服务实际绑定的监听地址,可以在服务启动后从应用实例配置中读取,参考代码如下:

import socket
from sanic import Sanic
from sanic.response import text

app = Sanic("ip_demo")

# 复用你原有获取默认网卡IP的逻辑
def get_local_default_ip():
    hostname = socket.gethostname()
    return socket.gethostbyname(hostname)

@app.route("/ip")
async def ip_view(request):
    return text(f"默认网络接口IP:{get_local_default_ip()}")

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080)
    # 服务启动后可通过应用配置读取绑定的监听host、端口信息

注意:如果启动Sanic时将host设置为0.0.0.0,该参数代表监听本机所有网卡地址,并非真实的默认出口IP,这种场景下仍然需要通过上述socket方法获取实际的默认网卡IP,和你之前的实现逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:57:19