Forum Freedom-IP

Forum d'entraide de la communauté Freedom-IP

Vous n'êtes pas identifié(e).

#26 2015-03-02 07:37:44

lezardking
Membre
Inscription : 2015-02-01
Messages : 309

Re : Application Freedom-IP en PowerShell

Bonjour, et merci pour la réponse.

le fichier ce trouve dans ce lien.

longue vie à c e service, à ce forum, et ses participants wink

Dernière modification par lezardking (2015-03-02 07:38:06)

Hors ligne

#27 2015-03-02 09:16:27

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Bonjour lezardking,
Pourrais-tu joindre le code source (et oui, je suis curieux  cool ) ?

A+,
Didier.

Hors ligne

#28 2015-03-02 09:49:54

lezardking
Membre
Inscription : 2015-02-01
Messages : 309

Re : Application Freedom-IP en PowerShell

Bonjour Didier-T,

n'étant pas professionnel (j'ai appris sur le tas, avec les moteurs de recherche wink ), les codes peuvent peut-être être améliorés (bien que je pense avoir simplifié au max tongue ).
Alors désolé si tout n'est pas lisible/compréhensible...

les sources sont dans cet autre lien.

Cordialement.

Hors ligne

#29 2015-03-02 10:39:52

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Pas de souci.
J'ai appris comme toi.

Hors ligne

#30 2015-03-02 11:06:08

ptit_poulet
Community Manager & Chef du support technique
Inscription : 2012-08-31
Messages : 3 102

Re : Application Freedom-IP en PowerShell

Bonjour tout le monde,

Excellente nouvelle d'avoir de la "concurrence", à nous tous on va bien réussir à faire quelque chose de top cool

J'ai mis à jour mon 1er post avec l'évolution du 1er script.
Je réponds en avance à Didier-T, le code source est disponible dans l'install mais que si tu es un minimum curieux big_smile donc je me fais pas de soucis.

Ce nouveau programme est développé en PowerShell que je connaissais avant mais pas à ce niveau là big_smile moi c'était plus pour faire des petits scripts tout mignon. Donc le code est surement à améliorer (xamzab s'est moqué de moi, le méchant... big_smile).

Pour le moment les serveurs sont configurés en dur dans le script, et donc la prochaine évolution sera d'utiliser l'API de xamzab (histoire de lui faire plaisir devil)

Allez je vous laisse tester et me faire des retours.

Cordialement. ptit_poulet


J'aime bien troller David toute la journée pour l’empêcher de s'ennuyer devil

Hors ligne

#31 2015-03-02 17:12:32

chico
l'Axe du bien
Inscription : 2014-05-03
Messages : 695

Re : Application Freedom-IP en PowerShell

Bonjour,

Petit retour sur ces 2 superbes applis FIP:

ptit_poulet :
 
  Les plus

-Gestion des protocoles et ports
-Indépendant des fichiers de configurations installés (se lance depuis n'importe où et crée un fichier de conf customisé)
-Fonctionne sous Windows XP et au dessus (32 et 64 bits)

  Les moins

-Pas d'icône dans la taskbar indiquant l'activité et le statut (il faut ré-ouvrir l'appli pour connaître le status)


lezardking :

  Les plus

-Interface graphique bien élaborée
-Création d'un fichier pass.txt via l'appli
-Utilise le GUI OpenVPN donc icône dans la taskbar

  Les moins

-Ne fonctionne pas sous 32 bits (testé uniquement sous XP, donc peut-être fonctionnel sous un 8.1 ou 7 32bits)
-Totalement dépendant des fichiers de conf installés dans votre répertoire OpenVPN (si les fichiers ne sont pas installés = message d'erreur)
-Pour la gestion des ports et des protocoles il faut modifier manuellement vos fichiers de conf

Voila, on attend les évolutions avec impatience wink


U Play...U Pay

Hors ligne

#32 2015-03-03 08:37:25

lezardking
Membre
Inscription : 2015-02-01
Messages : 309

Re : Application Freedom-IP en PowerShell

Bonjour,

et merci pour le retour smile

Pour les 32 bits, effectivement, sous XP ça fonctionne pas  sad  (désolé...) par contre, en 32 bits sous un autre OS supérieur, ça fonctionne. D'ailleurs, il ne fonctionne que sous Windows.

La relation avec les fichiers de "conf" ne me paraissait pas importante, je suis partis du principe que si on se servait du log, c'est qu'on avait OpenVPN, et que si on voulait rajouter d'autres fichier de conf, l'utilisateur saurait le faire manuellement.
Peux-tu, stp, me dire dans quelle mesure les fichiers peuvent ne pas être installés, pour que si je trouve un solution (je dis bien si), j'adapte mes codes...

Sinon, pour la gestion des ports et protocoles, pas de pb, ça devrait pouvoir se faire smile. J'ai du coup 2 questions :
- comment savoir si nous passons par de l'udp ou du tcp ?
- quel est le mieux des 2 (si on peut dire mieux) ?

Merci de tes (ou vos) réponses.

Cordialement,
LezardKing

Dernière modification par lezardking (2015-03-03 08:48:02)

Hors ligne

#33 2015-03-03 08:48:37

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Bonjour,

@ lezardking,
je suppose que c'est l'une de tes premières applications. Je pense ça car quand on doit faire du débogage on devient vite faignants et tous les blocs qui ce répètes deviennent des fonctions.

Alors je n'ai pas encore lu tout ton code, qui est bien détaillé (c'est très agréable pour la compréhension de l'action de chaque bloc), mais il y a un truc qui pourrait t'aider pour la suite.

Je ne pourrais pas t'apporter la solution car je n'ai jamais fait de Visual Basic (en dehors d'excel)

Dans "connexion_Click" tu répètes le même bloc de commande pour chaque serveur, si tu décides d’implanter la gestion des ports et protocole de connexion il faudra donc le faire x fois.

ceci gagnerait donc à devenir une fonction

        If FR1.IsChecked Then

            Dim nom_pays As String
            nom_pays = "FR1"
            Dim pays As String
            pays = "-(France)"
            Dim lnk As String
            lnk = "lnk"
            Dim ovpn As String
            ovpn = "ovpn"

            'tuer un processus (arrêt d'OpenVPN si il est déjà démarré, pour pouvoir se connecter à un nouveau serveur) :
            Dim strComputer As String
            Dim objWMIService As Object
            Dim colProcessList As Object
            strComputer = "."
            objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
            colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'openvpn-gui.exe'")
            For Each objProcess In colProcessList
                objProcess.Terminate()
            Next
            Dim raccourcis As String
            raccourcis = "C:.\config\" & Dir("C:.\config\" & nom_pays & "-*" & "." & lnk) ' cherche les raccourcis dans le dossier
            Dim Folder, System
            Folder = "C:.\config\" ' Répertoire de recherche
            System = CreateObject("Scripting.FileSystemObject")
            Dim counter = My.Computer.FileSystem.GetFiles(Folder, FileIO.SearchOption.SearchTopLevelOnly, nom_pays & "-*" & "." & lnk) ' compte le nb de fichier recherchés
            'MsgBox(CStr(counter.Count))

            If CStr(counter.Count) = 0 Then

                MsgBox("Seul le fichier d'origine exist, il vous faudra donc vos identifiants pour vous connecter au serveur.")
                If Exists("C:.\config_origine\" & nom_pays & pays & ".ovpn") Then
                    My.Computer.FileSystem.MoveFile("C:.\config_origine\" & nom_pays & pays & ".ovpn", "C:.\config\" & nom_pays & pays & ".ovpn")
                End If
                ' création du raccourci
                Dim VarTrav1 As String
                Dim option_du_raccourcis As String
                option_du_raccourcis = " --connect " & nom_pays & pays & ".ovpn" ' sera l'option du raccourci
                Dim Bureau As IWshRuntimeLibrary.WshShell
                Dim Raccourci As IWshRuntimeLibrary.WshShortcut
                'Dim VarTrav As String
                Bureau = New IWshRuntimeLibrary.WshShell
                '   Chemin et nom du raccourci (il doit forcément être sur le bureau pour pouvoir être lancé avec une élévation de droit)
                VarTrav1 = "C:\Users\" & nomuser & "\Desktop\" & nom_pays & pays & ".lnk" ' indique l'emplacement et le nom du future raccourci
                Raccourci = Bureau.CreateShortcut(VarTrav1)
                '   Cible
                Raccourci.WorkingDirectory = My.Application.Info.DirectoryPath & "\bin" ' nécéssaire pour le démarrage avec une élévation de droit
                Raccourci.Arguments = option_du_raccourcis
                Raccourci.TargetPath = My.Application.Info.DirectoryPath & "\bin\openvpn-gui.exe" ' représente la cible de l'exe à lancer
                '   Icône
                Raccourci.IconLocation = My.Application.Info.DirectoryPath & "\icon.ico" ' représente le fichier icone pour le raccourci
                '    Enregistrement
                Raccourci.Save()
                Dim process As System.Diagnostics.Process = Nothing
                Dim procStartInfo As New ProcessStartInfo
                Dim procExecuting As New Process
                With procStartInfo
                    .UseShellExecute = True
                    .FileName = VarTrav1 ' chemin du fichier à lancer avec des droit élevés
                    .WindowStyle = ProcessWindowStyle.Normal
                    .Verb = "runas" 'add this to prompt for elevation
                End With
                procExecuting = process.Start(procStartInfo)
                My.Computer.FileSystem.DeleteFile(VarTrav1) ' suppression du raccourci qui s'est créé sur le bureau

            ElseIf CStr(counter.Count) = 1 Then
                'MsgBox("cool, il n'y en a qu' " & CStr(counter.Count) & ".")
                My.Computer.FileSystem.CopyFile(raccourcis, "C:\Users\" & nomuser & "\Desktop\vpn.lnk")
                Dim process As System.Diagnostics.Process = Nothing
                Dim procStartInfo As New ProcessStartInfo
                Dim procExecuting As New Process
                With procStartInfo
                    .UseShellExecute = True
                    .FileName = "C:\Users\" & nomuser & "\Desktop\vpn.lnk" ' nom du fichier à lancer avec des droit élevés
                    .WindowStyle = ProcessWindowStyle.Normal
                    .Verb = "runas" 'add this to prompt for elevation
                End With
                procExecuting = process.Start(procStartInfo)
                My.Computer.FileSystem.DeleteFile("C:\Users\" & nomuser & "\Desktop\vpn.lnk")

            Else
                    MsgBox("Vous avez " & CStr(counter.Count) & " fichiers correspondant à des identifiants différents pour une connexion automatique." & vbCrLf & "" & vbCrLf &
                           "Cliquer sur OK pour faire défiler le nom des différents fichiers. Une fois que vous aurez trouvé votre fichier, il vous faudra cliquer 2 fois sur OK, SANS CHANGER LE TEXTE de la boite de dialogue")
                    Dim resultat As String
                    Dim fileNames = My.Computer.FileSystem.GetFiles(Folder, FileIO.SearchOption.SearchAllSubDirectories, nom_pays & "-*" & "." & lnk) ' cherche tous les fichiers en fonction de l'extension, dans le répertoire indiqué
                    For Each fileName As String In fileNames ' récupère, cherche, tous les fichiers
                        resultat = IO.Path.GetFileNameWithoutExtension(fileName) ' récupère le nom sans l'extension
                        ' affichage d'une fenêtre avec successivement les nom des fichiers
                        Select Case MsgBox(Chr(34) & resultat & ".txt" & Chr(34) & " est-il le fichier contenant vos identifiants pour la connexion au serveur " & nom_pays & " ?", MsgBoxStyle.YesNoCancel, "affichage des fichiers texte")
                            Case vbYes
                                Clipboard.Clear() ' éffacement du presse papier
                                Dim nom_fich1 As String
                                ' affiche une fenêtre avec le nom de chaque fichier, et fait un copier du résultat
                                nom_fich1 = InputBox("Cliquer sur OK si le nom de fichier ci-dessous est celui contenant vos identifiants pour vous connecter à " & nom_pays & ".", "recherche du nom du fichier contenant les identifiants", resultat)
                                Clipboard.SetText(nom_fich1)
                                Exit For
                                Exit Select
                            Case vbNo ' on va à next, et on affiche le nom du fichier suivant
                                On Error Resume Next
                            Case Else
                                'Me.Close()
                        End Select
                    Next fileName
                    Dim nom_fich As String
                    ' on colle le nom de fichier choisit plus haut
                    nom_fich = InputBox("Cliquer ENCORE sur OK si le nom de fichier ci-dessous est celui contenant vos identifiants pour vous connecter à " & nom_pays & ".", "validation du nom de fichier contenant les identifiants", Clipboard.GetText())

                    My.Computer.FileSystem.CopyFile(Folder & nom_fich & ".lnk", "C:\Users\" & nomuser & "\Desktop\vpn.lnk")
                    Dim process As System.Diagnostics.Process = Nothing
                    Dim procStartInfo As New ProcessStartInfo
                    Dim procExecuting As New Process
                    With procStartInfo
                        .UseShellExecute = True
                        .FileName = "C:\Users\" & nomuser & "\Desktop\vpn.lnk" ' nom du fichier à lancer avec des droit élevés
                        .WindowStyle = ProcessWindowStyle.Normal
                        .Verb = "runas" 'add this to prompt for elevation
                    End With
                    procExecuting = process.Start(procStartInfo)
                    My.Computer.FileSystem.DeleteFile("C:\Users\" & nomuser & "\Desktop\vpn.lnk")
            End If



            FR1.IsChecked = False
            Me.Close()

        End If

qui pourrait ressembler a cela

Private Sub connexion(nom_pays As String, pays As String, lnk As String, ovpn As String)

            'tuer un processus (arrêt d'OpenVPN si il est déjà démarré, pour pouvoir se connecter à un nouveau serveur) :
            Dim strComputer As String
            Dim objWMIService As Object
            Dim colProcessList As Object
            strComputer = "."
            objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
            colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'openvpn-gui.exe'")
            For Each objProcess In colProcessList
                objProcess.Terminate()
            Next
            Dim raccourcis As String
            raccourcis = "C:.\config\" & Dir("C:.\config\" & nom_pays & "-*" & "." & lnk) ' cherche les raccourcis dans le dossier
            Dim Folder, System
            Folder = "C:.\config\" ' Répertoire de recherche
            System = CreateObject("Scripting.FileSystemObject")
            Dim counter = My.Computer.FileSystem.GetFiles(Folder, FileIO.SearchOption.SearchTopLevelOnly, nom_pays & "-*" & "." & lnk) ' compte le nb de fichier recherchés
            'MsgBox(CStr(counter.Count))

            If CStr(counter.Count) = 0 Then

                MsgBox("Seul le fichier d'origine exist, il vous faudra donc vos identifiants pour vous connecter au serveur.")
                If Exists("C:.\config_origine\" & nom_pays & pays & ".ovpn") Then
                    My.Computer.FileSystem.MoveFile("C:.\config_origine\" & nom_pays & pays & ".ovpn", "C:.\config\" & nom_pays & pays & ".ovpn")
                End If
                ' création du raccourci
                Dim VarTrav1 As String
                Dim option_du_raccourcis As String
                option_du_raccourcis = " --connect " & nom_pays & pays & ".ovpn" ' sera l'option du raccourci
                Dim Bureau As IWshRuntimeLibrary.WshShell
                Dim Raccourci As IWshRuntimeLibrary.WshShortcut
                'Dim VarTrav As String
                Bureau = New IWshRuntimeLibrary.WshShell
                '   Chemin et nom du raccourci (il doit forcément être sur le bureau pour pouvoir être lancé avec une élévation de droit)
                VarTrav1 = "C:\Users\" & nomuser & "\Desktop\" & nom_pays & pays & ".lnk" ' indique l'emplacement et le nom du future raccourci
                Raccourci = Bureau.CreateShortcut(VarTrav1)
                '   Cible
                Raccourci.WorkingDirectory = My.Application.Info.DirectoryPath & "\bin" ' nécéssaire pour le démarrage avec une élévation de droit
                Raccourci.Arguments = option_du_raccourcis
                Raccourci.TargetPath = My.Application.Info.DirectoryPath & "\bin\openvpn-gui.exe" ' représente la cible de l'exe à lancer
                '   Icône
                Raccourci.IconLocation = My.Application.Info.DirectoryPath & "\icon.ico" ' représente le fichier icone pour le raccourci
                '    Enregistrement
                Raccourci.Save()
                Dim process As System.Diagnostics.Process = Nothing
                Dim procStartInfo As New ProcessStartInfo
                Dim procExecuting As New Process
                With procStartInfo
                    .UseShellExecute = True
                    .FileName = VarTrav1 ' chemin du fichier à lancer avec des droit élevés
                    .WindowStyle = ProcessWindowStyle.Normal
                    .Verb = "runas" 'add this to prompt for elevation
                End With
                procExecuting = process.Start(procStartInfo)
                My.Computer.FileSystem.DeleteFile(VarTrav1) ' suppression du raccourci qui s'est créé sur le bureau

            ElseIf CStr(counter.Count) = 1 Then
                'MsgBox("cool, il n'y en a qu' " & CStr(counter.Count) & ".")
                My.Computer.FileSystem.CopyFile(raccourcis, "C:\Users\" & nomuser & "\Desktop\vpn.lnk")
                Dim process As System.Diagnostics.Process = Nothing
                Dim procStartInfo As New ProcessStartInfo
                Dim procExecuting As New Process
                With procStartInfo
                    .UseShellExecute = True
                    .FileName = "C:\Users\" & nomuser & "\Desktop\vpn.lnk" ' nom du fichier à lancer avec des droit élevés
                    .WindowStyle = ProcessWindowStyle.Normal
                    .Verb = "runas" 'add this to prompt for elevation
                End With
                procExecuting = process.Start(procStartInfo)
                My.Computer.FileSystem.DeleteFile("C:\Users\" & nomuser & "\Desktop\vpn.lnk")

            Else
                    MsgBox("Vous avez " & CStr(counter.Count) & " fichiers correspondant à des identifiants différents pour une connexion automatique." & vbCrLf & "" & vbCrLf &
                           "Cliquer sur OK pour faire défiler le nom des différents fichiers. Une fois que vous aurez trouvé votre fichier, il vous faudra cliquer 2 fois sur OK, SANS CHANGER LE TEXTE de la boite de dialogue")
                    Dim resultat As String
                    Dim fileNames = My.Computer.FileSystem.GetFiles(Folder, FileIO.SearchOption.SearchAllSubDirectories, nom_pays & "-*" & "." & lnk) ' cherche tous les fichiers en fonction de l'extension, dans le répertoire indiqué
                    For Each fileName As String In fileNames ' récupère, cherche, tous les fichiers
                        resultat = IO.Path.GetFileNameWithoutExtension(fileName) ' récupère le nom sans l'extension
                        ' affichage d'une fenêtre avec successivement les nom des fichiers
                        Select Case MsgBox(Chr(34) & resultat & ".txt" & Chr(34) & " est-il le fichier contenant vos identifiants pour la connexion au serveur " & nom_pays & " ?", MsgBoxStyle.YesNoCancel, "affichage des fichiers texte")
                            Case vbYes
                                Clipboard.Clear() ' éffacement du presse papier
                                Dim nom_fich1 As String
                                ' affiche une fenêtre avec le nom de chaque fichier, et fait un copier du résultat
                                nom_fich1 = InputBox("Cliquer sur OK si le nom de fichier ci-dessous est celui contenant vos identifiants pour vous connecter à " & nom_pays & ".", "recherche du nom du fichier contenant les identifiants", resultat)
                                Clipboard.SetText(nom_fich1)
                                Exit For
                                Exit Select
                            Case vbNo ' on va à next, et on affiche le nom du fichier suivant
                                On Error Resume Next
                            Case Else
                                'Me.Close()
                        End Select
                    Next fileName
                    Dim nom_fich As String
                    ' on colle le nom de fichier choisit plus haut
                    nom_fich = InputBox("Cliquer ENCORE sur OK si le nom de fichier ci-dessous est celui contenant vos identifiants pour vous connecter à " & nom_pays & ".", "validation du nom de fichier contenant les identifiants", Clipboard.GetText())

                    My.Computer.FileSystem.CopyFile(Folder & nom_fich & ".lnk", "C:\Users\" & nomuser & "\Desktop\vpn.lnk")
                    Dim process As System.Diagnostics.Process = Nothing
                    Dim procStartInfo As New ProcessStartInfo
                    Dim procExecuting As New Process
                    With procStartInfo
                        .UseShellExecute = True
                        .FileName = "C:\Users\" & nomuser & "\Desktop\vpn.lnk" ' nom du fichier à lancer avec des droit élevés
                        .WindowStyle = ProcessWindowStyle.Normal
                        .Verb = "runas" 'add this to prompt for elevation
                    End With
                    procExecuting = process.Start(procStartInfo)
                    My.Computer.FileSystem.DeleteFile("C:\Users\" & nomuser & "\Desktop\vpn.lnk")
            End If
End Sub

et pour chaque appel un truc du genre

If FR1.IsChecked Then
    connexion("FR1", "-(France)", "lnk", "ovpn")
    FR1.IsChecked = False
    Me.Close()
ElseIf FR2.IsChecked Then
    connexion("FR2", "-(France)", "lnk", "ovpn")
    FR1.IsChecked = False
    Me.Close()
...
End If

Je te laisse regarder ça de plus pret, je n'aurais pas le temps aujoud'hui

@ ptit_poulet,
je dois me fair vieux, je n'ai pas trouvé le code source  glasses pourtant j'ai mis mes lunettes  monkey

A+,
Didier.

Hors ligne

#34 2015-03-03 11:57:36

ptit_poulet
Community Manager & Chef du support technique
Inscription : 2012-08-31
Messages : 3 102

Re : Application Freedom-IP en PowerShell

Didier-T a écrit :

je dois me fair vieux, je n'ai pas trouvé le code source  glasses pourtant j'ai mis mes lunettes  monkey

Bonjour,

Exécute le programme et surveille en même temps le dossier d'installation wink

Cordialement. ptit_poulet


J'aime bien troller David toute la journée pour l’empêcher de s'ennuyer devil

Hors ligne

#35 2015-03-03 12:17:17

lezardking
Membre
Inscription : 2015-02-01
Messages : 309

Re : Application Freedom-IP en PowerShell

Re,

merci Didier-T, j'ai jamais osé faire de fonction  tongue  et effectivement, c'est ma 2nd appli... (la 1ère me sert à installer (en dur ou en portable) plusieurs appli (genre office, antivirus, ccleaner,...) sur des pc que je refait pour les amis. Il n'est plus à jour), enfin bref...
Je vais me pencher dessus smile mais j'suis plus en vacances (bouhouhouh  cry ) )

Merci du retour en tout cas, comme ça je vais encore faire des découvertes, des recherches,  big_smile

LezardKing

Hors ligne

#36 2015-03-03 21:53:45

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Bonsoir ptit_poulet,
dit moi c'est une vraie chasse au trésor pour lire ton code.

Déjà chapeau, toute l'interface est faite à la pogne (en tout cas il semble) et par expérience je peux dire que ce n'est pas la voie la plus simple.

J'ai bien peur d'avoir compris pourquoi Xamzab n'avait pas été gentils avec toi en lisant ton code, la première ligne est impressionnante, tu vas t'amuser quand les IPs vont à nouveau changer wink
Mais bon sans gestion de l'API il est difficile (voire impossible) de faire autrement.

il y a aussi beaucoup de test qui pourrait être évité en utilisant un découpage de texte.
ceci

		if ($serverSelected -eq "FR1-(France)") {$serverFinal = "fr1.freedom-ip.com"}
		if ($serverSelected -eq "FR2-(France)") {$serverFinal = "fr2.freedom-ip.com"}
		if ($serverSelected -eq "NL1-(Pays-Bas)") {$serverFinal = "nl1.freedom-ip.com"}
		if ($serverSelected -eq "NL2-(Pays-Bas)") {$serverFinal = "nl2.freedom-ip.com"}
		if ($serverSelected -eq "NL3-(Pays-Bas)") {$serverFinal = "nl3.freedom-ip.com"}
		if ($serverSelected -eq "NL4-(Pays-Bas)") {$serverFinal = "nl4.freedom-ip.com"}
		if ($serverSelected -eq "DE1-(Allemagne)") {$serverFinal = "de1.freedom-ip.com"}
		if ($serverSelected -eq "DE2-(Allemagne)") {$serverFinal = "de2.freedom-ip.com"}
		if ($serverSelected -eq "ES1-(Espagne)") {$serverFinal = "es1.freedom-ip.com"}
		if ($serverSelected -eq "UK1-(Royaume-Uni)") {$serverFinal = "uk1.freedom-ip.com"}
		if ($serverSelected -eq "IE1-(Irlande)") {$serverFinal = "ie1.freedom-ip.com"}
		if ($serverSelected -eq "CZ1-(Republique-Tcheque)") {$serverFinal = "cz1.freedom-ip.com"}
		if ($serverSelected -eq "LT1-(Lituanie)") {$serverFinal = "lt1.freedom-ip.com"}
		if ($serverSelected -eq "BE1-(Belgique)") {$serverFinal = "be1.freedom-ip.com"}
		if ($serverSelected -eq "PL1-(Pologne)") {$serverFinal = "pl1.freedom-ip.com"}
		if ($serverSelected -eq "CH1-(Suisse)") {$serverFinal = "ch1.freedom-ip.com"}
		if ($serverSelected -eq "IT1-(Italie)") {$serverFinal = "it1.freedom-ip.com"}
		if ($serverSelected -eq "LU1-(Luxembourg)") {$serverFinal = "lu1.freedom-ip.com"}
		if ($serverSelected -eq "FI1-(Finlande)") {$serverFinal = "fi1.freedom-ip.com"}
		if ($serverSelected -eq "PT1-(Portugal)") {$serverFinal = "pt1.freedom-ip.com"}
		if ($serverSelected -eq "GR1-(Grèce)") {$serverFinal = "gr1.freedom-ip.com"}
		if ($serverSelected -eq "MT1-(Malte)") {$serverFinal = "mt1.freedom-ip.com"}
		if ($serverSelected -eq "DK1-(Danemark)") {$serverFinal = "dk1.freedom-ip.com"}
		if ($serverSelected -eq "SE1-(Suède)") {$serverFinal = "se1.freedom-ip.com"}
		if ($serverSelected -eq "US1-(Etats-Unis)") {$serverFinal = "us1.freedom-ip.com"}
		if ($serverSelected -eq "US2-(Etats-Unis)") {$serverFinal = "us2.freedom-ip.com"}
		if ($serverSelected -eq "US3-(Etats-Unis)") {$serverFinal = "us3.freedom-ip.com"}
		if ($serverSelected -eq "CA1-(Canada)") {$serverFinal = "ca1.freedom-ip.com"}
		if ($serverSelected -eq "CA2-(Canada)") {$serverFinal = "ca2.freedom-ip.com"}
		if ($serverSelected -eq "CA3-(Canada)") {$serverFinal = "ca3.freedom-ip.com"}

pourrait devenir cela

$ret=$serverSelected.Substring(0, 3)
$serverFinal = "$ret.freedom-ip.com".ToLowerInvariant()

je ne sais pas si tu connais ce site, mais sait une vraie mine d'informations sans fioritures, il m'a bien aidée pour écrire c'est deux malheureuses lignes  tongue (Bah oui sous Linux il n'y a pas de PowerShell non plus)

A+,
Didier.

Dernière modification par Didier-T (2015-03-03 22:10:51)

Hors ligne

#37 2015-03-04 00:29:04

ptit_poulet
Community Manager & Chef du support technique
Inscription : 2012-08-31
Messages : 3 102

Re : Application Freedom-IP en PowerShell

Bonsoir,

@Didier-T : Oui je te confirme tout est fait main, sans logiciel d'aide à la création de GUI. Tout à fait d'accord avec toi, y a carrément moyen d'améliorer le code big_smile
Pour le moment pas de gestion de l'API mais c'est la prochaine évolution wink


J'aime bien troller David toute la journée pour l’empêcher de s'ennuyer devil

Hors ligne

#38 2015-03-04 11:31:56

ptit_poulet
Community Manager & Chef du support technique
Inscription : 2012-08-31
Messages : 3 102

Re : Application Freedom-IP en PowerShell

Bonjour,

@Didier-T : je viens d'intégrer ta modif du code, je n'y avais même pas pensé. J'ai déjà utilisé cette méthode dans des scripts shell mais là j'ai complètement zappé big_smile big_smile big_smile. Bon au moins ça allège le code. C'est pas beau ça le partage autour d'un même programme.

D'ailleurs aujourd'hui je mettrai une nouvelle version, customisée par chico. Cette nouvelle version sera entièrement portable c'est-à-dire qu'OpenVPN et le driver TAP seront intégrés et il n'y aura plus besoin de les installer avant l'utilisation du programme cool

Cordialement. ptit_poulet


J'aime bien troller David toute la journée pour l’empêcher de s'ennuyer devil

Hors ligne

#39 2015-03-04 14:10:07

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Bonjour,
je viens de porter la gestion de l'API sous Windows (il y avait deux trucs à modifier).

vous aurez donc deux archives à disposition :

  1. Archive avec fichier compilé prêt a l'emploi.

  2. Archive avec les codes sources

pour l'utilisation du biniou :

Freedom_API_2.exe --user=fip_xxxxxxx --password=xxxxxxxxxxx --get=[argument]
Interroge votre compte Freedom-IP.

Liste des paramètres obligatoires pour l'accès aux données :
  -u,  --user           Identifiant Freedom-IP
  -p,  --password       Mot de passe Freedom-IP
  -a,  --user-file      Fichier texte contenant l'identifiant et le mot de passe Freedom-IP
  -g,  --get            info recherchée sur votre compte (voir liste ci-dessous)

Liste des arguments get :
  Dons               =>    Dons effectués à Freedom-IP
  StarPass           =>    StarPass obtenu grace à vos dons
  ProxyRules         =>    Obtenir vos règles de proxy
  HTTPSEverywhere    =>    Obtenir l'état de HTTPSEverywhere pour votre compte
  DNSConfig          =>    Obtenir les informations concernant votre configuration DNS sur le VPN
  FairUse            =>    Obtenir les informations concernant votre fairuse
  GetAllServersInfos =>    Obtenir les informations concernant les serveurs VPN
  all                =>    Obtenir toutes les informations ci-dessus

argument optionnel
  -f,  --file           Rediriger la sortie dans le fichier Freedom-IP.info (créé dans le répertoire contenant l’exécutable)

Un petit exemple avec utilisation d'un fichier contenant les identifiants, il sera nommé pass_vpn.
Pour cette exemple nous interrogerons toute l'API avec sortie dans le fichier Freedom-IP.info

Freedom_API_2.exe -a pass_vpn -g all -f

A+,
Didier.

Hors ligne

#40 2015-03-04 17:22:31

ptit_poulet
Community Manager & Chef du support technique
Inscription : 2012-08-31
Messages : 3 102

Re : Application Freedom-IP en PowerShell

Outch du python... devil
Si tu as le même en PowerShell je te fais un bisous big_smile


J'aime bien troller David toute la journée pour l’empêcher de s'ennuyer devil

Hors ligne

#41 2015-03-04 17:37:53

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Pour le coup ça risque pas grand-chose, la première fois que j'ai entendue parler de PowerShell c'est dans cette conversation big_smile
Mais là tu as un retour dans un fichier texte, il n'y a plus qu'a ce servir devil

Edit : je vais quand même regarder ce que je peux faire

Dernière modification par Didier-T (2015-03-04 17:40:59)

Hors ligne

#42 2015-03-04 18:24:50

ptit_poulet
Community Manager & Chef du support technique
Inscription : 2012-08-31
Messages : 3 102

Re : Application Freedom-IP en PowerShell

Ah ah il veut son bisous Didier-T big_smile monkey kiss


J'aime bien troller David toute la journée pour l’empêcher de s'ennuyer devil

Hors ligne

#43 2015-03-04 19:06:06

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Je ne céderais pas sous la menace  devil

Je ne sais pas où tu en es de l'obtention des informations avec l'API, mais voici déjà pour obtenir le Token

$url='https://freedom-ip.com/api/login.fip'
$user='fip_xxxxxxxxxx'
$pass='xxxxxxxxxxxxxxxxxxx'
$postParams = @{username=$user;password=$pass}
Invoke-WebRequest -Uri $url -Method POST -Body $postParams

ça te renverra entre autres choses ton Token nécessaires pour la suite

avec ça le plus dur est fait  wink

Hors ligne

#44 2015-03-04 20:14:52

ptit_poulet
Community Manager & Chef du support technique
Inscription : 2012-08-31
Messages : 3 102

Re : Application Freedom-IP en PowerShell

Merci Didier-T, je regarderai ça prochainement wink

Sinon j'ai mis à jour mon 1er post avec la nouvelle version du programme.
Mais cette fois-ci avec l'aide de chico, on a mis le paquet big_smile
Nous avons préparé une version complètement portable du programme, c'est-à-dire que vous n'avez pas besoin d'installer OpenVPN-GUI ou le pilote TAP. Tout est intégré dans Freedom-IP.exe. Vous trouverez une version compilé en 32Bits et une autre en 64Bits. Le seul travail que vous aurez à faire est de remplir le fichier pass.txt avant la 1ère utilisation.

Bon test wink


J'aime bien troller David toute la journée pour l’empêcher de s'ennuyer devil

Hors ligne

#45 2015-03-04 20:45:16

Polizei
Membres de confiance
Inscription : 2013-12-27
Messages : 403

Re : Application Freedom-IP en PowerShell

Bonjour Didier-T !

Tu peux me confirmer que la « traduction » de ton API s’occupe totalement et automatiquement du token ?

C'est à dire que :
1/ Si le token n’éxiste pas, il va le créer automatiquement pour récupérer les informations  demandées,
2/ Si le token existe déjà, il va le réutiliser pour obtenir les informations  demandées,
3/ Si le token n’est plus valable, on bascule sur le point n°1 ?

C’est à dire qu’avec par exemple : Freedom_API_2.exe -a error.txt -g GetAllServersInfos -f  j’aurais toujours la réponse suivante dans Freedom-IP.info sans avoir à me soucier de la gestion du token ? :

GetAllServersInfos0 server_ports ['443|TCP', '443|UDP', '53|TCP', '53|UDP', '1194|TCP', '1194|UDP', '8080|TCP', '110|TCP', '995|TCP']
GetAllServersInfos0 server_download 9308012
GetAllServersInfos0 server_ipv4 ['195.154.36.19']
GetAllServersInfos0 server_id FR1
GetAllServersInfos0 nb_users 120
GetAllServersInfos0 server_status 1
GetAllServersInfos0 server_upload 9501199
GetAllServersInfos0 server_pptp 1
GetAllServersInfos0 server_country France
GetAllServersInfos0 server_proxy 1
GetAllServersInfos0 server_openvpn 1
GetAllServersInfos1 server_ports ['443|TCP', '443|UDP', '53|TCP', '53|UDP', '1194|TCP', '1194|UDP', '8080|TCP', '110|TCP', '995|TCP']
GetAllServersInfos1 server_download 2468939
GetAllServersInfos1 server_ipv4 ['5.196.248.208', '5.196.248.209', '5.196.248.210']
GetAllServersInfos1 server_id FR2
GetAllServersInfos1 nb_users 23
GetAllServersInfos1 server_status 1
GetAllServersInfos1 server_upload 2504324
GetAllServersInfos1 server_pptp 1
GetAllServersInfos1 server_country France
GetAllServersInfos1 server_proxy 1
GetAllServersInfos1 server_openvpn 1
GetAllServersInfos2 server_ports ['443|TCP', '443|UDP', '53|TCP', '53|UDP', '1194|TCP', '1194|UDP', '8080|TCP', '110|TCP', '995|TCP']
[...]
GetAllServersInfos29 server_openvpn 1

EDIT : j’ai rien dit. Je viens de voir dans les sources que tu créés un fichier fip_xxxxxxxxxx.token et joue avec pour obtenir les informations.
C’est parfait, ceci va rendre l’utilisation de l’API beaucoup plus simple pour tous ceux qui code sous windows peu importe le language (Visual, Power Shell (pour les rebelles), Batch)

Tu mérites ton largement tes bisous :  kiss kiss kiss
Merci beaucoup pour cette intervention technique très très utile !

EDIT2 : [...]Nous avons préparé une version complètement portable du programme[...] --> Je vais voir ça !

Dernière modification par Polizei (2015-03-04 20:53:34)

Hors ligne

#46 2015-03-04 20:51:12

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Bonsoir Polizei,
normalement oui, c'est le code que j’emploie sous Linux et il fonctionne très bien.

Le seul moment ou sa foire, c'est quand on change d'IP (le token n'est plus valable et le delais n'est pas passé) la il suffit de supprimer le .token et tous roulent.

Pourquoi, tu as rencontré un soucis ?

Hors ligne

#47 2015-03-04 20:55:15

Polizei
Membres de confiance
Inscription : 2013-12-27
Messages : 403

Re : Application Freedom-IP en PowerShell

Justement non, je ne rencontre aucun soucis et c’est pourquoi je trouvais ça louche !
Tu seras d’accord avec moi qu’un mec qui te pond un truc de derrière les fagots et tout fonctionne du premier coup c’est pas normal en informatique !
Pour le changement d’IP entre temps, pas de soucis en effet en écrasant / supprimant le fichier en .token

Merci beaucoup, il va servir à pas mal de monde pour éviter les codages des serveurs en dur ou la récupération d’information à l’ancienne en « greppant » dans le code source de la page d’informations !

Bien joué Didier !

Edit : Je vais jeter un œil au truc du binôme Chico / ptit_poulet mais à ce rythme il va surtout falloir penser à ouvrir un projet commun sur GitHub pour éviter d’éparpiller tous les participants !

Dernière modification par Polizei (2015-03-04 20:58:14)

Hors ligne

#48 2015-03-04 20:58:28

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

Merci.
En même temps sa fait un moment que j'ai écrit ce code, mais je ne l'avais simplement pas testé sous Windows.
Par contre il était disponible sur le forum.  big_smile

Hors ligne

#49 2015-03-04 21:23:23

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Application Freedom-IP en PowerShell

@ptit_poulet,
pour ton API tu n'as besoin que des infos serveurs.

Voici un bout de code qui te donne accès à ces infos de manière brute, je te laisse faire le traitement à ta guise.

$user='fip_xxxxxxxxxxx'
$pass='xxxxxxxxxxxxxxxxxxx'

function _past{
param ($url,$postParams)
Invoke-WebRequest -Uri $url -Method POST -Body $postParams
}

# Récupération du token
$ret=_past 'https://freedom-ip.com/api/login.fip' @{username=$user;password=$pass}
$token=$ret.Content.Split(':')[-1].replace('"',"").replace("}","")

# Récupération des infos serveur
$info_serveur=_past 'https://freedom-ip.com/api/servers.fip' @{token=$token;method='GetAllServersInfos'}
echo $info_serveur.Content

Amuse toi bien,
Didier.

Dernière modification par Didier-T (2015-03-05 06:05:53)

Hors ligne

#50 2015-03-04 23:17:30

Papi
Membre
Inscription : 2014-12-06
Messages : 17

Re : Application Freedom-IP en PowerShell

Bonsoir,  je suis avec discrétion tout ce que vous faites pour améliorer FIP et je vous tire mon chapeau.  Je ne participe pas beaucoup au discutions mais mes connaissances en programmation sont tres limité  big_smile  .

Sinon j'essaye toutes vos versions ( je suis avec W7 32bits...), ce qui serait bien sur votre programme petit poulet et Chico c'est une icone dans la barre de tache pour voir si on est toujours bien connecté.

Une petite question en plus, si j'utilise le logiciel sur une clé et sur mon autre pc qui n'a pas openvpn d'installer est ce que je suis obligé de telecharger les fichier de config des serveurs sur le site?

Voila, mais vraiment je trouve qu'il y a une super communauté ici, merci a vous tous.

Hors ligne

Pied de page des forums