如何获取php中的活动网络接口列表

时间:2013-04-10 21:02:57

标签: php sockets network-programming php-socket

所以我想要的是通过php standalone使用套接字函数实现这一点 -

$  sudo ifconfig | cut -d " " -f1 | awk 'NF==1{print $1}'
 eth0
 lo
 wlan0

我知道我可以使用system命令执行此操作,但为此,我需要更改ifconfig (root privelaged command)上的粘滞位权限或需要编写C包装器。

所以请告诉我通过PHP实现这一目标的最佳方法。

我的目的是使用使用HTML和PHP开发的应用程序向前端用户显示可用的网络接口列表。

2 个答案:

答案 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 ...");