python - Port scan mislykkes, når firewall er aktiveret

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har Windows Client System Environment, når jeg gør port scan med kommandoen nedenfor, får jeg ikke svar, hvis firewall er tændt.


Q1. Jeg vil gerne vide, om en hvilken som helst metode jeg kan få svar hver gang, hvis firewall tændt eller ej?
Q2. Enhver port er altid åben i et Windows-system, så jeg kan få svar.


Bemærk: Deaktiver Firewall-indstillingen er ikke egnet til mig, da jeg altid ændrer computerdomæne-indstillinger, firewall er slået til som standard for domænenetværk i firewall


Indtast billedbeskrivelse her [3]


import socket
s = socket.socket(socket.AF\_INET,socket.SOCK\_STREAM)
ClientIP = '10.xxx.xxx.xxx'
def portscanner(port):
    try:
        s.connect((ClientIP,port))
        return True
    except:
        return False
for x in range(8000,8003):
    if portscanner(x):
        print("Port is open",x)
    else:
        print("port is closed",x)

Bedste reference


Når porten er blokeret af en firewall, kan du ikke registrere fejlen før en timeout. Du kan indstille en kort timeout.


s.settimeout(1);


Dette venter kun 1 sekund, inden du giver op.