Bonsoir à tous
Mytic, je me suis permis de créer une variante qui me semble plus interéssante, cette version permet de scanner tous les ports des site ou ordinateurs distants et en prime il capture la vraie adresse locale de la cible avec un petit plus: il donne le non du pay de la cible scanné:
Code : Tout sélectionner
Procedure.s left_right_cut(valeur.s)
If Len(valeur)>2
valeur = Left(valeur,Len(valeur)-1)
valeur = Mid(valeur,2,Len(valeur))
ProcedureReturn valeur
EndIf
EndProcedure
Procedure.s ip_to_country (db_file.s,ip.s)
Protected f.l, ip_val1.l, ip_val2.l ,line.s, ip_string1.s, ip_string2.s, ip_val.l,code_.s
If ReadFile(f,db_file)
ip_val = Val(StringField(ip,1,"."))*16777216 + Val(StringField(ip,2,"."))*65536+ Val(StringField(ip,3,"."))*255 +Val(StringField(ip,4,"."))
While Eof(f) = 0
line = ReadString(f,#PB_Ascii)
ip_string1 = left_right_cut(StringField(line,1,","))
ip_string2 = left_right_cut(StringField(line,2,","))
ip_val1 = Val(ip_string1)
ip_val2 = Val(ip_string2)
If ip_val >= ip_val1 And ip_val <= ip_val2
;Debug ip_val
code_.s = left_right_cut(StringField(Line,3,","))
ProcedureReturn code_.s
EndIf
Wend
CloseFile(f)
EndIf
EndProcedure
If InitNetwork()
site_$=InputRequester("Site ciblé","Inscrivez le l'adresse du site que vous ciblez","www.tf1.fr")
OpenConsole()
ConsoleCursor(10)
PrintN("-----------: Ports actifs :------------")
PrintN("")
PrintN(UCase(site_$))
PrintN("")
For i = 20 To 65000
t$ = Inkey()
If t$ <> ""
Goto ex
EndIf
ConsoleTitle("Port :"+Str(i-1)+" / 65000")
link=OpenNetworkConnection(site_$, i,#PB_Network_TCP)
If link
If d=0
IP_$=IPString(GetClientIP(link))
If IP_$
PrintN("IP : "+IP_$)
PrintN("pay: "+ip_to_country("C:\BD\ip-to-country.csv",IP_$) )
PrintN("")
d=1
EndIf
EndIf
ConsoleColor(9,0)
PrintN("TCP: " + Str(i))
*buffer=AllocateMemory(1000)
If *buffer
ReceiveNetworkData(link, *buffer, 1000)
Block$ = PeekS(*buffer)
If Block$
;AddGadgetItem(#Editor_0, -1, Block$)
PrintN(Block$)
EndIf
EndIf
FreeMemory(*buffer)
PrintN("")
CloseNetworkConnection(link)
EndIf
; link=OpenNetworkConnection(site_$, i,#PB_Network_UDP)
;
; If link
; If d=0
; IP_$=IPString(GetClientIP(link))
;
; If IP_$
; PrintN("IP :"+IP_$)
; d=1
; EndIf
; EndIf
;
; ConsoleColor(10,0)
; PrintN("UDP : " + Str(i))
;
; *buffer=AllocateMemory(1000)
;
; If *buffer
; ReceiveNetworkData(link, *buffer, 1000)
; Block$ = PeekS(*buffer)
;
; If Block$
; ;AddGadgetItem(#Editor_0, -1, Block$)
; PrintN(Block$)
; EndIf
; EndIf
;
; FreeMemory(*buffer)
; PrintN("")
; CloseNetworkConnection(link)
; EndIf
Next i
ex:
ConsoleColor(12,0)
PrintN("Analyse interrompue")
Delay(2000)
CloseConsole()
EndIf
End
par contre il faut récupérer la base de donnée présente:
http://ip-to-country.webhosting.info/d ... .csv.zip
que vous placerez dans votre répertoire et une éventuelle modif dans le code pour le chemin de la BD
tu m'en diras des nouvels
