У меня возникли проблемы с запуском этого веб-скрипта Python и распечаткой результатов на веб-странице. Это небольшой проект, над которым я работаю, который будет работать на маршрутизаторе OpenWRT.
Когда беспроводной клиент подключается к точке доступа, CGI-скрипт будет работать с IP-адресом устройства, полученным из сеансов HTTP, и отображать, открыты ли какие-либо порты, которые могут оставить человека открытым для какой-либо атаки в общедоступной сети.
Я могу подтвердить, что сканирование портов работает правильно из захвата пакетов wireshark.
В ту минуту я продолжаю получать ошибку CGI о том, что есть ошибка с синтаксисом Nmap, хотя я знаю, что это работает в оболочке Python.
ошибка, которую я получаю, -
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
/Applications/XAMPP/xamppfiles/cgi-bin/test.py in ()
20 for client in nm.scan():
21 print('----------------------------------------------------')
=> 22 print('Host : %i' % (nm[client].all_protocols().keys))
23 """
24
nm = <nmap.nmap.PortScanner object>, client = 'nmap', ].all_protocols undefined
/Applications/XAMPP/xamppfiles/cgi-bin/build/bdist.macosx-10.8-intel/egg/nmap/nmap.py in __getitem__(self=<nmap.nmap.PortScanner object>, host='nmap')
<type 'exceptions.KeyError'>: 'nmap'
args = ('nmap',)
message = 'nmap'
Вот мой код
#!/usr/bin/env python2.7
import cgi
import os
import nmap
import cgitb; cgitb.enable() # for troubleshooting
print "Content-type: text/html"
print
print """
<html>
<head><title>Sample CGI Script</title></head>
<body>
<h3> Sample CGI Script </h3>
"""
client = cgi.escape(os.environ["REMOTE_ADDR"])
print ('your IP Address is: ' + client)
nm = nmap.PortScanner()
nm.scan(client, '21')
for client in nm.scan():
print('----------------------------------------------------')
print('Host : %i' % (nm[client].all_protocols().keys))
"""
</body>
</html>
"""