【问题标题】:problems python socket.error: [Errno 99] Cannot assign requested address问题python socket.error:[Errno 99]无法分配请求的地址
【发布时间】:2017-05-08 15:08:22
【问题描述】:

我有问题无法运行此脚本 我尝试按如下方式创建 ICMP 网络嗅探器:

import socket
import os

host = '192.168.1.9'

if os.name == "nt":
   socket_protocol = socket.IPPROTO_IP
else:
   socket_protocol = socket.IPPROTO_ICMP
   sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW,socket_protocol)
   sniffer.bind((host, 0))   

   sniffer.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)

if os.name == "nt":

  sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
  print sniffer.recvfrom(656565)

if os.name == "nt":

  sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)



Traceback (most recent call last):
File "exampl.py", line 11, in <module>
sniffer.bind((host, 6000))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address

我可以做些什么来防止这个错误?

【问题讨论】:

    标签: python-2.7 sockets


    【解决方案1】:
    socket.error: [Errno 99] Cannot assign requested address
    

    我可以做些什么来防止这个错误?

    errno 99 的名称由

    定义
    #define EADDRNOTAVAIL   99      /* Cannot assign requested address */
    

    man bind 说:

       EADDRNOTAVAIL
              A  nonexistent  interface was requested or the requested address
              was not local.
    

    这建议尝试使用本地地址,并且确实没有更多错误:

    host = 'localhost'
    

    【讨论】:

    • 为什么他必须将地址更改为不是目标的本地主机
    • 你还没有认识到目标防止这个错误
    猜你喜欢
    • 2017-09-13
    • 2013-10-15
    • 1970-01-01
    • 2023-03-11
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 2020-09-04
    相关资源
    最近更新 更多