如何在特定接口上使用cURL

mad*_*lik 26 c linux curl

我正在开发一个c代码,它通过使用curl实用程序简单地FTP服务器上的文件,遵循这个 例子

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

有什么办法吗?

小智 54

看起来像卷曲支持--interface选项

curl --interface eth0 
Run Code Online (Sandbox Code Playgroud)

  • “界面”不错!多数民众赞成在我一直在寻找,非常感谢,CURLOPT_INTERFACE是在curl_easy_setopt(Y)中设置的选项 (2认同)

小智 6

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

就我而言,我运行的是 eth0 和 wlan0,但 eth0 是我的默认网卡。Ping 在没有 sudo 的情况下工作,除了说连接超时之外,curl 没有足够详细的日志记录,只有在没有 sudo 的情况下才能在 eth0 上工作。当错误显示“setsockopt SO_BINDTODEVICE:不允许操作”时,Traceroute 终于让我得到了答案