Ошибка Python ValueError: Неизвестный сетевой интерфейс Нет - PullRequest
0 голосов
/ 11 марта 2019
import scapy.all as scapy
import requests
import json

Этот код работает с API для получения информации о продавцах

def vender_finding(mac_adr):
   mac_url = 'http://macvendors.co/api/%s'
   vender = (requests.get(mac_url % mac_adr))
   response_dict = json.loads(json.dumps(vender.json()))
   return response_dict['result']['company']

Этот код возвращает все устройства, подключенные к сети. результат примерно такой

результат этого кода

def scan(ip):
   arp_request = scapy.ARP(pdst=ip)
   broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
   arp_request_broadcast = broadcast/arp_request

Это строка, которая выдает ошибку

   answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]

   clents_list = []
   for element in answered_list[1:]:
      company = vender_finding(element[1].hwsrc)
      clent_dict = {"ip": element[1].psrc, "mac": element[1].hwsrc, "vender": company}
      clents_list.append(clent_dict)
      print(clents_list)
   return clents_list


 scan('192.168.1.0/24')

но теперь возвращается ошибка вроде этого. Здесь и сейчас начинает появляться новая ошибка.

answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]

Это ошибка, которую я получаю.

raise ValueError("Unknown network interface %r" % name)
ValueError: Unknown network interface None

Ответы [ 2 ]

1 голос
/ 11 марта 2019

При установке следующего программного обеспечения проблема решена.

1.python 2.7.2 с python.org

2.Microsoft Visual C ++ Compiler для Python 2.7 с https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266.

(проверьте эту ссылку для более подробной информации. Требуется Microsoft Visual C ++ 9.0 )

3.pip install scapy == 2.4.3rc1 (это рекомендуется автором StackOverflow. Thisработают очень хорошо.)

(проверьте ответ по этой ссылке на рекомендацию пользователя Cukic0d. Число GUID интерфейса Windows, дающего ошибку: ValueError: Неизвестный сетевой интерфейс '{1619EEF1-4D71-4831-87AC-8E5DC3AA516A} ')

4.winpcap (чтобы выполнить scapy sniff () необходимо установить его)

Установите python 2.7.2, а затем установите компилятор Microsoft Visual C ++ для Python 2.7

0 голосов
/ 11 марта 2019

Вы можете попробовать "iface" с вашим сетевым интерфейсом. Пример:

sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth1")

Подробнее: https://scapy.readthedocs.io/en/latest/usage.html

...