【问题标题】:how to use cURL on specific interface如何在特定界面上使用 cURL
【发布时间】:2016-01-09 01:31:24
【问题描述】:

我正在用 c 开发一个代码,它只是通过使用 curl 实用程序来对 FTP 服务器上的文件进行 FTP 传输,方法如下: example

现在我有一件简单的事情要做,指定 curl 使用服务器的特定接口 (IP) 进行上传,因为服务器的其他接口与其他套接字连接相关联。

有什么办法吗?

【问题讨论】:

    标签: c linux curl


    【解决方案1】:

    好像 curl 支持 --interface 选项

    curl --interface eth0 
    

    【讨论】:

    • “接口”是的!这正是我想要的,非常感谢,CURLOPT_INTERFACE 是在 curl_easy_setopt (Y) 中设置的选项
    【解决方案2】:

    对于来到这里寻找相同答案的任何人,但对于 wlan0 或 Raspberry/RPi 上的任何非默认界面,您需要 sudo 或以 root 身份运行。

    在我的例子中,我运行的是 eth0 和 wlan0,但 eth0 是我的默认 NIC。 Ping 在没有 sudo 的情况下工作,curl 没有足够详细的日志记录,只是说连接超时并且只能在 eth0 上没有 sudo 的情况下工作。当错误提示“setsockopt SO_BINDTODEVICE: Operation not allowed”时,Traceroute 终于让我得到了答案

    【讨论】:

    • 谢谢!它为我节省了很多环顾四周的时间,特别是因为 curl 没有任何迹象表明它正在回退到使用默认界面!我建议任何想要使用它的人先阅读man curl 的接口部分。
    • 这应该在手册页中!谢谢
    猜你喜欢
    • 2021-08-27
    • 1970-01-01
    • 2014-05-12
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2021-11-25
    相关资源
    最近更新 更多