Python和PHP没有发挥作用,只有很小一部分被解析

用户名

因此,我目前正在使用Python脚本扫描WiFi网络并打印出结果:

from subprocess import check_output
scanoutput = check_output(["iwlist", "wlan0", "scan"])
print '<select name="ssid">'
for line in scanoutput.split("\n"):
        line = line.strip()
        if line.startswith("ESSID:"):
                line=line[7:-1]
                print '<option value="' + line + '">' + line + </option>'
print "</select>"

我在SSH中尝试时看起来不错:

<select name="ssid">
<option value="easybell DSL">easybell DSL</option>
<option value="FRITZ!Box Fon WLAN 7360 SL_EXT">FRITZ!Box Fon WLAN 7360 SL_EXT</option>
<option value="WLAN-519293">WLAN-519293</option>
<option value="NoTrespassing">NoTrespassing</option>
<option value="Cinque">Cinque</option>
<option value="EasyBox-738461">EasyBox-738461</option>
<option value="FRITZ!Box WLAN 3270">FRITZ!Box WLAN 3270</option>
</select>

然后由PHP使用:

<form action="/cgi-bin/process.py" method="get">
<?php $output=shell_exec("/usr/bin/python cgi-bin/wifi-scan.py"); print_r($output);?>
<input type="password" value="password" name="psk" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Password';}">
<div class="submit"><input type="submit" onclick="myFunction(){shell_exec("process.py")}" value="Connect" ></div>
</form>

但是,令人遗憾的是,当我进入网站时,它仅在Dropbox菜单中显示一个选项。令我沮丧的是,我通过SSH运行了Python代码,以查看它是否有效以及可能是什么问题。当我直接刷新网站后,所有选项都显示出来。

这似乎是持久的。

为了获得完整列表,我首先需要通过SSH运行它,然后才能刷新站点并查看完整列表。这将持续大约10秒钟,此后仅再次显示第一个选项,并且需要手动干预。

这可能是什么问题?我的智慧到此为止!

谢谢!!

用户名

该脚本由PHP在lighttpd上实现,以www-data运行。命令iwlist需要root特权。如果它是由没有root权限(www-data)的用户执行的,则它仅返回有关您所连接的wifi的信息,这就是为什么我认为它可以正常工作,但只输出一行而不是全部输出的原因。他们。

当然,为了最大程度地降低利用该系统的风险,我不会以root用户身份启动lighttpd,也不会赋予www-data root用户特权。

相反,通过执行以下操作,编辑了我的sudoers文件以接受仅将此特定python脚本作为sudo运行:

sudo visudo

并添加以下行:

www-data ALL = (ALL) NOPASSWD: /home/var/www/html/cgi-bin/wifi-scan.py

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何有效地更改非常大的QPixmap的很小一部分?

为什么我的数据集中的一部分被spyder着色,而另一部分却没有?

pgrep完全匹配不起作用,只有一部分,为什么?

CSS文件中只有一部分不起作用

目标C-if条件中只有一部分起作用

使用Python刮取Linkedin连接,但只有一部分显示-Selenium和BeautifulSoup

当网页只有一部分可滚动时如何滚动硒(python)

php if语句作为ajax调用的一部分没有失败

IF语句的第一部分被忽略

有没有办法只能解析字符串的一部分?

使用 VUE - 即使只有一部分不同,HTML 是否也会更新?

为什么只有单元格顶部的一部分对齐?

使用three.js出现的gltf模型只有一部分

为什么我的 WebGL 上下文只有一部分扩展

交叉验证中的 PCA;然而,只有一部分变量

phpexcel 到 html 只有一部分

只有一部分CSS处于活动状态

有没有办法将 javascript 变量用作 PHP SQL 页面的一部分?

有没有办法在vscode上隐藏我的python代码的一部分?

RegEx模式不起作用:匹配PHP域名的最后一部分之后的所有内容

如何在GitHub中复制提交差异的一部分,而没有优点和缺点?

有没有办法在fortran中读取文件的一部分?

有没有办法隔离字符串的一部分?

我如何从字符串中删除所有空格,除非所述字符串的一部分被Node中的特定字符包围?

ipywidgets.VBox 没有显示一次功能的一部分

用awk / sed替换一行,但是只有一部分是已知的

我正在尝试使用PHP的GD库使图像透明,但是运行以下代码,只有一部分是透明的

grep是coreutils的一部分吗?(如果没有,为什么?)

为最后一部分配置RedirectMatch,而没有无限循环