0

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

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

我知道我可以通过使用命令来做到这一点,system但为此我需要更改粘性位权限ifconfig (root privelaged command)或需要编写 C 包装器。

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

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

4

2 回答 2

1

在基于 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);
于 2019-01-08T06:28:51.147 回答
-2

您可以将您的网络服务器运行为(通常是 www 或 www-data)的用户添加到/etc/sudoers. 然后您应该能够通过系统调用访问 ifconfig 命令。显然这里存在安全影响。如果您采用该路线,则应限制对 ifconfig 命令的访问。

$out = system("sudo ifconfig ...");
于 2013-04-10T21:38:29.697 回答