Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Windows操作系统上扫描错误?_Python_Sockets_Networking_Scapy_Raw Sockets - Fatal编程技术网

Python 在Windows操作系统上扫描错误?

Python 在Windows操作系统上扫描错误?,python,sockets,networking,scapy,raw-sockets,Python,Sockets,Networking,Scapy,Raw Sockets,我使用python 2.6.3在windows上运行scapy 我试图运行我找到的代码,但每次都会得到一个操作错误[Errno 9] 我没有发现任何syntex的错误 我做错了什么 这是源代码: from scapy.all import * import socket host = raw_input('Host: ') target = socket.gethostbyname(host) src = socket.gethostbyname(socket.gethostname()) pr

我使用python 2.6.3在windows上运行scapy

我试图运行我找到的代码,但每次都会得到一个操作错误[Errno 9]

我没有发现任何syntex的错误

我做错了什么

这是源代码:

from scapy.all import *
import socket
host = raw_input('Host: ')
target = socket.gethostbyname(host)
src = socket.gethostbyname(socket.gethostname())
print "Target IP: ",target
print "Source IP: ",src

srcPort = RandShort()
icmpCodes = [1,2,3,9,10,13]
#startPort = 1
#maxPort = 1024
ports = [21,22,23,25,53,80,110,111,123,143,161,194,443,465,993]
print 'scan is starting...'
for port in ports:
    ans = sr1(IP(dst=target)/TCP(sport=srcPort,dport=port,flags="S"))
    if(str(type(ans))=="<type 'NoneType'>"):
        print "Port %s: Filtered" %(port)
    elif(ans.haslayer(TCP)):
        if(ans.getlayer(TCP).flags == 0x012):#(SYN,ACK)
            send_rst = sr(IP(dst=target)/TCP(sport=srcPort,dport=port,flags="R"))
            print "Port %s: Open" %(port)
        elif (ans.getlayer(TCP).flags == 0x014):#(RST)
            print "Port %s: Closed" %(port)
    elif(ans.haslayer(ICMP)):
        if(int(ans.getlayer(ICMP).type)==3 and int(ans.getlayer(ICMP).code) in     icmpCodes): #Destination Unreachable  
            print "Port %s: Filtered" %(port)
从scapy.all导入*
导入套接字
主机=原始输入(“主机:”)
target=socket.gethostbyname(主机)
src=socket.gethostbyname(socket.gethostname())
打印“目标IP:”,目标
打印“源IP:”,src
srcPort=RandShort()
ICMPcode=[1,2,3,9,10,13]
#startPort=1
#最大端口=1024
端口=[21,22,23,25,53,8010111231431619434465993]
打印“扫描正在开始…”
对于端口中的端口:
ans=sr1(IP(dst=target)/TCP(sport=srcPort,dport=port,flags=“S”))
如果(str(type(ans))==“”):
打印“端口%s:已筛选”%(端口)
elif(ans.haslayer(TCP)):
if(ans.getlayer(TCP.flags==0x012):#(SYN,ACK)
发送rst=sr(IP(dst=target)/TCP(sport=srcPort,dport=port,flags=“R”))
打印“端口%s:打开”%(端口)
elif(ans.getlayer(TCP).flags==0x014):#(RST)
打印“端口%s:已关闭”%(端口)
elif(ans.haslayer(ICMP)):
如果(int(ans.getlayer(ICMP).type)==3,并且在icmpcode中为int(ans.getlayer(ICMP).code):#目标不可到达
打印“端口%s:已筛选”%(端口)
这就是我得到的错误:

Host: www.google.com
Target IP:  173.194.66.147
Source IP:  192.168.1.8
scan is starting...
Begin emission:
Finished to send 1 packets.
Traceback (most recent call last):
File "D:\Document\Desktop\my_project\TcpSynPortScan_scapy.py", line 16, in <module>
ans = sr1(IP(dst=target)/TCP(sport=srcPort,dport=port,flags="S"))
File "C:\Python26\lib\site-packages\scapy\sendrecv.py", line 335, in sr1
a,b=sndrcv(s,x,*args,**kargs)
File "C:\Python26\lib\site-packages\scapy\arch\windows\__init__.py", line 431, in sndrcv
os.write(1, ".")
OSError: [Errno 9] Bad file descriptor
>>> 
主机:www.google.com
目标IP:173.194.66.147
来源IP:192.168.1.8
扫描正在开始。。。
开始排放:
已完成发送1个数据包。
回溯(最近一次呼叫最后一次):
文件“D:\Document\Desktop\my_project\TcpSynPortScan_scapy.py”,第16行,在
ans=sr1(IP(dst=target)/TCP(sport=srcPort,dport=port,flags=“S”))
文件“C:\Python26\lib\site packages\scapy\sendrecv.py”,第335行,在sr1中
a、 b=sndrcv(s,x,*args,**kargs)
sndrcv中第431行的文件“C:\Python26\lib\site packages\scapy\arch\windows\\uuuu init\uuuu.py”
操作系统写入(1,“.”)
OSError:[Errno 9]错误的文件描述符
>>> 

谢谢

我在Linux上试用了你的代码,看起来不错

实际上,它尝试使用坏管道,尝试使用记录器或进程监视器进行调试