Python Невозможно создать сокет - запрещено доступом - PullRequest
0 голосов
/ 27 апреля 2020
  • Fre sh Python 3.8 Установка
  • Windows 10 1903
  • Использование PyCharm
  • Пробный порт 80, 3333, произвольные порты
  • На моем компьютере не работает ни один ИЗВЕСТНЫЙ сервер.
  • Windows Брандмауэр выключен
  • Антивирусное ПО выключено
  • netstat -ao не показывает никаких порт 80 процесса или любой другой протестированный порт.
  • Te lnet не установлен по умолчанию в Windows 10. Это не должно упоминаться как возможный ответ?

Код :

import socket

host, port = "", 3333
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((host, port))
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)

while True:
    packet = s.recv(65565)
    print(packet)

Ошибка:

C:\Users\Me\PycharmProjects\packets\venv\Scripts\python.exe C:/Users/Me/PycharmProjects/packets/socket_test.py
Traceback (most recent call last):
  File "C:/Users/Me/PycharmProjects/packets/socket_test.py", line 4, in <module>
    s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
  File "C:\Users\Me\AppData\Local\Programs\Python\Python38-32\lib\socket.py", line 231, in __init__
    _socket.socket.__init__(self, family, type, proto, fileno)
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions

1 Ответ

0 голосов
/ 27 апреля 2020

Я использую PyCharm / Командная строка / Git Bash для запуска скриптов. Это было чрезвычайно простое исправление, которое было слишком сложным.

Для любой программы, которую вы используете для запуска сценария, сделайте следующее:

  1. Щелкните правой кнопкой мыши приложение.
  2. Запуск от имени администратора.

Запустив PyCharm от имени администратора, я смог обойти эту проблему. Сделав то же самое для Git Bash и командной строки, сценарий наконец запустился.

...