我知道我可以使用PHP中的CURLOPT_INTERFACE
为传出的cURL连接指定网络接口或IP地址,如下所示:
curl_setopt($curl, CURLOPT_INTERFACE, '192.168.0.1');
是否可以通过编程方式检索服务器上配置的所有可用接口的列表?目前,我正在bash中进行此操作:
cat /etc/network/interfaces
这是在基于Debian的服务器上配置网络接口的地方,但是我希望在php脚本中获取此信息,而无需外壳访问或对上述文件的读取权限-理想情况下,它可以在不同的服务器环境中工作
答案 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}}只是简单地查找并返回找到的第一个地址。