获取适用于PHP cURL请求的可用网络接口

时间:2018-11-12 17:08:51

标签: php curl

我知道我可以使用PHP中的CURLOPT_INTERFACE为传出的cURL连接指定网络接口或IP地址,如下所示:

curl_setopt($curl, CURLOPT_INTERFACE, '192.168.0.1');

是否可以通过编程方式检索服务器上配置的所有可用接口的列表?目前,我正在bash中进行此操作:

cat /etc/network/interfaces

这是在基于Debian的服务器上配置网络接口的地方,但是我希望在php脚本中获取此信息,而无需外壳访问或对上述文件的读取权限-理想情况下,它可以在不同的服务器环境中工作

1 个答案:

答案 0 :(得分:1)

假设您已经为/etc/hosts设置了适当的条目,那么您应该能够获得如下所示的IP地址数组:

 $ips = gethostbynamel(gethostname());

在我的系统上,var_dump($ips)返回以下内容:

array(3) {
  [0]=>
  string(9) "127.0.0.1"
  [1]=>
  string(9) "127.0.0.1"
  [2]=>
  string(15) "192.168.31.14"
}

gethostbynamel()返回IP地址列表,与gethostbyname()不同,{{3}}只是简单地查找并返回找到的第一个地址。