1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| 'Notes :
'les chemins sont relatifs à l'emplacement d'exécution de ce code
'ce code créé et supprime des fichiers
'assurez-vous d'avoir les droits windows pour crééer/supprimer des fichiers
'par exemple, sous Win7, ce code ne fonctionnera pas à la racine de C
'dans mon application, ce code s'exécute au démarrage du système
'de manière transparante, une alerte peut toutefois apparaître
'si la connection internet est perdu ou si le firewall fait du zèle
'il faudra peut-être améliorer le code pour libérer les ressources
'comme par exemple Set ie = Nothing
Option Explicit
Ip_Publique()
Ip_Publique()
FTPUpload()
'************************************************************
Sub Ip_Publique
'*********
dim oShell
dim iRet
Set oShell = WScript.CreateObject("WScript.Shell")
'iRet = oShell.Popup ("1 - récupération code source ",1,"popup",vbOKCancel+16)
'*********
Dim Titre,URL,ie,objFSO,Data,OutPut,objRegex,Match,Matches
Titre = "Adresse Ip Publique !"
URL = "http://monip.org"
Set ie = CreateObject("InternetExplorer.Application") 'nous permet d'utiliser les fonctions d'IE
Set objFSO = CreateObject("Scripting.FileSystemObject") 'nous permet d'utiliser les fonctions de l'OS
ie.Navigate (URL)
ie.Visible=false
DO WHILE ie.busy
wscript.sleep 100
LOOP
Data = ie.document.documentElement.innertext 'récupération du code source de la page
'msgbox data
'Wscript.Sleep 300000
'createafile()
'Set OutPut = objfso.GetFile("monip.txt")
Set OutPut = objfso.CreateTextFile("monip.txt",8,True)
'msgbox "fichier texte créé ? création"
ie.Quit
Set ie = Nothing
'*********
'iRet = oShell.Popup ("2 - mise en forme ",1,"popup",vbOKCancel+16)
'*********
'??? je suppose que c'est une recherche par expression régulière ???
Set objRegex = new RegExp
objRegex.Pattern = "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"
objRegex.Global = False
objRegex.IgnoreCase = True
Set Matches = objRegex.Execute(Data)
'*********
'iRet = oShell.Popup ("3 - création fichier txt ",1,"popup",vbOKCancel+16)
'*********
For Each Match in Matches
'écriture de l'adresse IP dans le fichier texte
OutPut.WriteLine string(40,"-") & vbcr &" Nous sommes le "& Now & vbcr & string(40,"-") & vbcr & " Mon IP Publique est : "& Match.Value & vbcr & string(40,"*")
Next
'si on veut voir immédiatement le résultat du script
'Call OpenLog("c:\script\monip.txt")
End Sub
Sub CreateAfile()
dim fs, a
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("monip.txt", True)
a.WriteLine("This is a test.")
a.Close
'msgbox "testfile created ?"
End Sub
Sub OpenLog(File)
Dim ws
Set ws = CreateObject("wscript.shell")
ws.run "Notepad " & File,1,True
Set ws = Nothing
End Sub
'-------------------------------FTPUpload---------------------------------------------
Sub FTPUpload()
'cette fonction s'appuie sur l'application FTP.EXE inclut avec windows
'je ne suis pas entièrement satisfait de ce code, notamment FileFTPName
'*********
dim oShell
dim iRet
Set oShell = WScript.CreateObject("WScript.Shell")
'iRet = oShell.Popup ("4 - ftpupload ",1,"popup",vbOKCancel+16)
'*********
Dim FSO, FileFTP, FileBAT, FileFTPName, shell
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FileFTPName = CreateObject("Scripting.FileSystemObject")
Set FileFTP = FSO.OpenTextFile("commandes_ftp.txt", 2, True)
Set FileBAT = FSO.OpenTextFile("commandes_ftp.bat", 2, True)
'création d'un fichier de commandes pour ftp.exe
'*********
'iRet = oShell.Popup ("5 - création d'un fichier de commandes pour ftp.exe ",1,"popup",vbOKCancel+16)
'*********
With FileFTP
.WriteLine "open **.***.***.**"
.WriteLine "USER ****"
.WriteLine "**********"
.WriteLine "cd openshare"
.WriteLine "PUT " & FSO.GetAbsolutePathName("monip.txt")
.WriteLine "Quit"
.Close
End With
With FileBAT
.WriteLine "ftp -n -s:" & chr(34) & FSO.GetAbsolutePathName("commandes_ftp.txt") & chr(34)
.WriteLine "Pause"
.close
End With
'*********
'iRet = oShell.Popup ("6 - exécution de ftp.exe ",1,"popup",vbOKCancel+16)
'*********
Set shell = CreateObject("WScript.Shell")
'exécution de ftp.exe avec la liste de commandes précédemment créé
shell.Run chr(34) & FSO.GetAbsolutePathName("commandes_ftp.bat") & chr(34)
'msgbox "ftp -n -s:" & chr(34) & FSO.GetAbsolutePathName("commandes_ftp.txt") & chr(34) & " >>c:\script\log.txt"
'shell.Run "ftp -d -n -s:" & chr(34) & FSO.GetAbsolutePathName("commandes_ftp.txt") & chr(34) & " >>c:\script\log.txt", 3, true
'Attendre que ftp.exe libère le fichier de commande
'*********
'iRet = oShell.Popup ("7 - ftp.exe exécuté",1,"popup",vbOKCancel+16)
'*********
Wscript.Sleep 10000
'*********
'iRet = oShell.Popup ("8 - fin attente",1,"popup",vbOKCancel+16)
'*********
'suppression des fichiers inutiles
FSO.DeleteFile FSO.GetAbsolutePathName("commandes_ftp.txt")
FSO.DeleteFile FSO.GetAbsolutePathName("commandes_ftp.bat")
FSO.DeleteFile FSO.GetAbsolutePathName("monip.txt")
'*********
'iRet = oShell.Popup ("9 - fin",1,"popup",vbOKCancel+16)
'*********
End Sub |
Partager