所以我想要的是通过php standalone使用套接字函数实现这一点 -
$ sudo ifconfig | cut -d " " -f1 | awk 'NF==1{print $1}'
eth0
lo
wlan0
我知道我可以使用system
命令执行此操作,但为此,我需要更改ifconfig (root privelaged command)
上的粘滞位权限或需要编写C包装器。
所以请告诉我通过PHP实现这一目标的最佳方法。
我的目的是使用使用HTML和PHP开发的应用程序向前端用户显示可用的网络接口列表。
答案 0 :(得分:0)
在基于Debian的发行版上,您可以使用我编写的该库。它可以读取/写入/ etc / network / interfaces
https://github.com/carp3/networkinterfaces
<?php
//include composer autoloader
include 'vendor/autoload.php';
// 'import' NetworkInterfaces class
use NetworkInterfaces\Adaptor;
use NetworkInterfaces\NetworkInterfaces;
// create new handle from /etc/networking/interfaces
$handle = new NetworkInterfaces('/etc/networking/interfaces');
// parse file
$handle->parse();
// print all adaptors
var_dump($handle->Adaptors);
答案 1 :(得分:-2)
您可以将您的网络服务器运行的用户(通常是www或www-data)添加到/etc/sudoers
。然后,您应该能够通过系统调用访问ifconfig命令。您也可以将其限制为ifconfig命令。
$out = system("sudo ifconfig ...");