Hejsan allihopa. Jag har skrivit ett script som portscannar någon dvs scriptet ansluter till massa portar i rad. Naturligtvis bara för att lära mig, det finns ju en mängd bättre scanners (t.ex nmap).
Problemet är det att det går skitlångsamt att scanna sig själv (127.0.0.1) i Windows (98). Vi snackar 1 port/sekund. Men i Linux går det hur snabbt som helst. Jag förstår bara inte! Är Win98's nätverkskod verkligen så långsam? Jag kanske har gjort något fel? Är det något man måste tänka på när man gör sånt här i Windows? Här har jag laddat upp scriptet, nån vänlig person kanske skulle kunna ta sig en titt...? ;)
Peter_BMedlem sedan apr. 2000642 inlägg jag har för mig att det är skillnad på en stängd och en blockerad port. kör du nån såndär NAT-router (IP-masquerading) eller firewall på någon av datorerna? isf så går det betydligt långsammare att scanna den datorn, då portarna är blockerade istället för bara stängda..
detta är bara nån form av gissning, det kan bero på detta... :)
------------------
PeterSign v 2.3.36
Det är samma dator. Jag dualbootar Win98 och Linux (2.2.17). :) Ingen NAT, IP-masquerading eller nåt sånt. Min dator var inte ens uppkopplad mot internet när jag scannade mig själv.
ToonsterMedlem sedan feb. 20001 590 inlägg Det finns en inbyggd timeout i winsock, så när ingen port hittas får man räkna med strax över sekunden (1,6) per port. Eftersom de flesta portar inte används, så får man standardtimeoten, dvs. om du inte anger någon annan timeouttid. I lokala nät brukar 20 millisek vara ett bra värde, för Internet 40 - 800 eller mer.
Du kör ett Perlscript, så där är nog orsaken till att det går snabbt i Linux och inte i Windows.
Med winsock 2 finns flera funktioner för det du mixtrar med.
Varför inte skapa C/C++ kod istället?
(ps, vill du hacka mer :-) försök att skicka "några" tecken till porten du försöker "scanna")
/T
------------------
------------------->8 klipp här!!
Det finns en inbyggd timeout i winsock, så när ingen port hittas får man räkna med strax över sekunden (1,6) per port. Eftersom de flesta portar inte används, så får man standardtimeoten, dvs. om du inte anger någon annan timeouttid. I lokala nät brukar 20 millisek vara ett bra värde, för Internet 40 - 800 eller mer.
Hmm, det förklarar ju det :)
Varför inte skapa C/C++ kod istället?
För att Perl är så trevligt ;) Håller faktiskt på med en liten server i C++ just nu (funkar faktiskt, men jag har ingen aning om vad den skall göra :P).