Forum Freedom-IP

Forum d'entraide de la communauté Freedom-IP

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

#51 2015-03-04 23:29:13

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

Re : Application Freedom-IP en PowerShell

Bonsoir papi,

Merci pour le retour wink

Non vous n'avez besoin d'aucun fichier de configuration pour faire fonctionner cette appli, elle vous proposera d'installer l'interface virtuelle nécessaire au fonctionnement d'OpenVPN si elle n'est pas déjà installée sur le système .

Le PC sur lequel vous lancer cette appli n'a ni besoin d'avoir OpenVPN d'installé ni aucun fichier de configuration.

Cordialement


U Play...U Pay

Hors ligne

#52 2015-03-04 23:35:24

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

Re : Application Freedom-IP en PowerShell

De rien pour le retour.

Surtout merci pour cette reponse rapide Chico,  je vais tester et je vous tiens au courant si je vois un beug ou autre.

Bonne soirée et merci encore pour votre travail.

Hors ligne

#53 2015-03-05 00:03:49

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

Re : Application Freedom-IP en PowerShell

J'ai une erreur quand je clique sur "update info"

1425510188_fiperreur.png

je verrais par la suite

Hors ligne

#54 2015-03-05 00:06:43

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

Re : Application Freedom-IP en PowerShell

De quelle version de Windows s'agit-il?

Cordialement


U Play...U Pay

Hors ligne

#55 2015-03-05 00:06:58

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

Re : Application Freedom-IP en PowerShell

Avez-vous exécuté Freedom-IP.exe en tant qu'administrateur ?


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

Hors ligne

#56 2015-03-05 00:12:15

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

Re : Application Freedom-IP en PowerShell

Alors il s'agit de Windows7 32bits, et oui j'ai executé Freedom-IP.exe en tant qu'administrateur,

ensuite powershell a planté je viens de redemarrer le pc.
:-)

Hors ligne

#57 2015-03-05 00:13:40

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

Re : Application Freedom-IP en PowerShell

Si votre connexion est lente, il se peut qu'il vous affiche connecté mais non protégé dans ce cas cliquez une seule fois sur update et non plusieurs fois ce qui provoquera une erreur comme vous avez eu wink


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

Hors ligne

#58 2015-03-05 00:16:56

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

Re : Application Freedom-IP en PowerShell

je n'ai cliqué qu'une fois, lorsque j'ai fermé la fenetre ca en a rouvert une disant que power shell avait planté, je prend toujours mon temps avec les appli je les laisse bien ce lancer et je ne clique jamais comme un bourrin :-) , je suis seulement nul en programmation.

[EDIT] Demain j'essairai sur un pc qui n'aura peut etre pas de probleme (car ca peut venir de mon pc aussi) et je vous tiendrais au courant.

ptit_poulet par contre dommage d'avoir supprimer votre message de tout a l'heure, car le tutoiement sur internet je trouve ca devrait etre pour tout le monde sur internet, je me souviens que lorsque j'ai commencer a surfer (c'etait plutot ramer 56K) tout le monde ce tutoyait, ensuite est sortie la premiere netiquette qui disait aussi que le tutoiement etait mieux car cela mettait tout le monde sur un meme pied d'egalité,  mais bon je m'egare un peu du sujet....

Bonne soirée a vous et je vous tiens au courant.

Dernière modification par Papi (2015-03-05 00:31:02)

Hors ligne

#59 2015-03-05 00:24:30

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

Re : Application Freedom-IP en PowerShell

Merci papi pour tous ces retours wink

Pouvez-vous faire une capture d'écran juste après avoir redémarré votre PC et relancer l'appli sans y toucher, je veux dire juste en lançant l'appli et en ne cliquant sur aucun bouton?

Merci encore


U Play...U Pay

Hors ligne

#60 2015-03-05 00:31:59

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

Re : Application Freedom-IP en PowerShell

je redemare et je fais ca Chico.

Hors ligne

#61 2015-03-05 00:37:05

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

Re : Application Freedom-IP en PowerShell

voila ce que j'ai en redemarrant tout et en ne touchant a rien  smile

1425512217_fipdem.png

Hors ligne

#62 2015-03-05 00:42:33

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

Re : Application Freedom-IP en PowerShell

en me connectant sur un autre serveur et en ne cliquant qu'une fois sur update infos, ca replante
1425512544_plantage2.png

Hors ligne

#63 2015-03-05 00:42:51

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

Re : Application Freedom-IP en PowerShell

Je sais d'où vient le problème, il faut que je trouve comment le corriger maintenant big_smile
Car ce n'est pas normal qu'il se lance comme s'il était déjà connecté...


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

Hors ligne

#64 2015-03-05 00:45:08

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

Re : Application Freedom-IP en PowerShell

Oki, alors je ne cliquerais pas sur l'update en attendant la prochaine version  big_smile

Hors ligne

#65 2015-03-05 07:12:26

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

Re : Application Freedom-IP en PowerShell

Bonjour,
en fait j'ai bien ce langage il y a tout ce qu'il faut pour ne pas avoir à se prendre la tête.

j'ai refait le bout de code pour les infos serveur, de manière plus propre et solide.

$user='fip_xxxxxxxxx'
$pass='xxxxxxxxxxxxxxxxxx'

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}
$ret=ConvertFrom-Json -InputObject $ret.Content
$token=$ret.created_token
if ($token -eq "null" -and $ret.message -eq "Unable to create a new token."){
    $token=$ret.token}
else {
    echo "Problème d'identifiant"
    exit}

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

Hors ligne

#66 2015-03-05 02:11:18

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

Re : Application Freedom-IP en PowerShell

Vous n'attendrez pas longtemps, une nouvelle version plus stable sera disponible dès demain matin wink

Cordialement


U Play...U Pay

Hors ligne

#67 2015-03-05 10:32:12

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

Re : Application Freedom-IP en PowerShell

Bonjour,

Nouvelle version mise en ligne.
Le bug de l'ancienne version venait du fait que j'utilisais une commande PowerShell uniquement compatible avec Windows 8.1. Et c'est cette commande qui était utilisée vérifier l'état de la connexion de l'interface TAP. J'ai donc modifier en utilisant une commande compatible de Windows XP à Windows 8.1. Nous l'avons testé sous XP, Seven et 8.1 et n'avons pas eu de soucis.

@Didier-T : oui c'est ça qui est pas mal avec PowerShell c'est que Microsoft a intégré pas mal de fonction plus utile les unes que les autres.

Cordialement. ptit_poulet


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

Hors ligne

#68 2015-03-05 11:38:31

poulaga5982
Membre
Inscription : 2012-07-16
Messages : 279

Re : Application Freedom-IP en PowerShell

Merçi à ptit_poulet et à ceux qui on contribuer pour ce script
fonctionne très bien bien pour moi
il m'indique en vert Connecté et protégé
sur Ripe j'ai bien l'adresse IP sous Freedom   smile
Cordialement

Hors ligne

#69 2015-03-05 22:00:25

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

Re : Application Freedom-IP en PowerShell

Bonsoir,
je ne crois pas que j'irai beaucoup plus loin avec les serveurs, mais le code est tout de même amélioré et pleinement fonctionnel.

J'ai donc créé deux fonctions.

La première nous donne accès aux infos serveur.
Elle retourne trois variable:

  1. Un Tableau contenant la liste des serveurs disponible.

  2. Un dictionnaire permettant de tester si son Ip actuel correspond bien a celle d'un serveur.

  3. Un dictionnaire contenant deux tableaux un pour les ports en TCP l'autre pour les ports en UDP.

La seconde, test si notre IP est protégé ou non et nous donne en retour soit le nom du serveur, soit l'information comme quoi nous ne sommes pas protégés.

$user='fip_xxxxxxxxxx'
$pass='xxxxxxxxxxxxxxxxxxxx'

function Private:infos_serveurs{
    param ($url,$postParams)

    function Private:_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}
    $ret=ConvertFrom-Json -InputObject $ret.Content
    $token=$ret.created_token
    if ($token -eq "null" -and $ret.message -eq "Unable to create a new token."){
        $token=$ret.token
    }
    else {
        echo "Problème d'identifiant"
        exit
    }

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

    # Traitement des infos serveur
    $x=0
    $serveur_ip=@{}
    $serveur_con=@{}
    $liste_pays=[System.Collections.ArrayList]@()
    foreach ($i in $info_serveur.server_id){
        $serveur_nom=$i+"-("+$info_serveur.server_country[$x]+")"
        $liste_pays += $serveur_nom
        # Remplissage du dico IP
        foreach ($ip in $info_serveur[$x].server_ipv4){
            $serveur_ip[$ip]=$serveur_nom
        }

        # Remplissage du dico Protocol et Port de connexion pour chaque serveur
        $serveur_con[$serveur_nom]=@{TCP=[System.Collections.ArrayList]@();UDP=[System.Collections.ArrayList]@()}
        foreach ($i in $info_serveur[$x].server_ports){
            if ($i -match "TCP"){
                $serveur_con[$serveur_nom]["TCP"] += $i.Split("|")[0]
            }
            else{
                $serveur_con[$serveur_nom]["UDP"] += $i.Split("|")[0]
            }
        }
        $x=$x+1
    }
    return ,$liste_pays ,$serveur_ip ,$serveur_con
}

# Test si IP protégé, avec en retour serveur de connexion
function Private:test_ip{
    param ($serveur_ip)

    $ip = ((new-object net.webclient).DownloadString("http://icanhazip.com")).replace("`n",'')
    $serv=$serveur_ip.$ip
    if ($serv.count -eq "0"){
        $ret="Connexion non sécurisée"
    }
    else{
        $ret="Connexion sécurisée sur le serveur $serv"
    }
    return $ret
}

# Appel fonction
$liste_pays, $serveur_ip, $serveur_con=infos_serveurs $user $pass
# Exemple d'acces aux infos serveurs
echo $liste_pays
echo $serveur_ip."5.39.58.112"
echo $serveur_con["GR1-(Grèce)"]["TCP"]
echo $serveur_con["GR1-(Grèce)"]["UDP"]

# Utilisation test IP
$test_protection=test_ip $serveur_ip
echo $test_protection

Amusez-vous bien, moi j'y ai pris beaucoup de plaisir.

A+,
Didier.

Hors ligne

#70 2015-03-05 23:26:31

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

Re : Application Freedom-IP en PowerShell

Ce Didier-T est une machine big_smile

Je testerai ça la semaine prochaine afin de voir pour l'intégrer dans le programme.


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

Hors ligne

#71 2015-03-06 12:18:09

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

Re : Application Freedom-IP en PowerShell

Bonjour ptit_poulet,
je vais me pencher sur le systray, il me semble que ça manque toujours à ton application.

A+,
Didier.

Hors ligne

#72 2015-03-06 13:09:02

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

Re : Application Freedom-IP en PowerShell

Bonjour,

J'ai déjà regardé pour le systray et réussi à y afficher des choses. Mais pour le moment le problème est que l'info est actualisée que lorsqu'on appuie sur le bouton update infos donc ça ne sert pas à grand chose d'afficher dans le systray pour le moment. Mais je suis en train de réfléchir pour mettre au point quelque chose qui puisse checker tout seul toutes les x secondes et là dans ce cas le systray sera utile big_smile

Cordialement. ptit_poulet


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

Hors ligne

#73 2015-03-08 09:48:52

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

Re : Application Freedom-IP en PowerShell

Bonjour,
je me suis repenché sur ma copie, bah oui, ça me plaisait pas encore tout à fait (et qui sait je le referais peut-être à nouveau).

En fait je trouvais dommage de surcharger de ligne de code l'application de ptit_poulet et je me suis donc demandé si l'on pouvait faire une bibliothèque de fonction comme sous Python.
Et bien la réponse est oui, ça se nomme "module" en PowerShell, mais la finalité est la même.

Nous avons donc un fichier module
info serveur VPN.psm1 (attention a l’extension)

function Private:Get-ScriptDirectory{
    $Private:Invocation = (Get-Variable MyInvocation -Scope 1).Value
    Split-Path $Invocation.MyCommand.Path
}
$path=Get-ScriptDirectory

function infos_serveurs{
    PARAM ($url,$postParams)

    # génération du nom et chemin du fichier token
    $ip = ((new-object net.webclient).DownloadString("http://icanhazip.com")).replace("`n",'')
    $filetoken="$path\$user-$ip.token"
    
    function _token{
        param ($filetoken,$user,$pass)

        function create_token{
            param ($filetoken,$user,$pass)

            # Récupération du token
            $ret=_past 'https://freedom-ip.com/api/login.fip' @{username=$user;password=$pass}
            $ret=ConvertFrom-Json -InputObject $ret.Content
            $token=$ret.created_token
            if ($token -eq "null" -and $ret.message -eq "Unable to create a new token."){
                $token=$ret.token
            }
            else {
                Write-Host "Problème d'identifiant"
                exit
            }
            $fileCustom = new-item "$filetoken" –type file -force
		    ADD-content -path $filetoken -value $token
            Write-Host "Nouvelle clef enregistrée dans le fichier $filetoken"
            echo $token
        }

        if (Test-Path $filetoken) {
            Write-Host "le fichier token existe"
            $file=Get-ChildItem $filetoken
            $filedate=$file.LastWriteTime
            $agefile=$filedate - (Get-Date).AddHours(-1)
            if ( $filedate -le (Get-Date).AddHours(-1) ){
                Write-Host "le fichier token a une heure ou plus"
                Write-Host "Génération d'une nouvelle clef et enregistrement"
                $token=create_token $filetoken $user $pass
            }
            else{
                Write-Host "le fichier token est encore valable $agefile"
                $fileCustom=Get-Content ($filetoken)
                Foreach ( $line in $fileCustom ) {
                $token=$line
                }
            }
        }
        else{
            Write-Host "le fichier token n'existe pas"
            Write-Host "Génération d'une clef et enregistrement"
            $token=create_token $filetoken $user $pass
        }
    echo $token

    }

    function _past{
        param ($url,$postParams)

        Invoke-WebRequest -Uri $url -Method POST -Body $postParams
    }

    # Récupération du token
    $token=_token $filetoken $user $pass

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

    # Traitement des infos serveur
    $x=0
    $serveur_ip=@{}
    $serveur_con=@{}
    $liste_pays=[System.Collections.ArrayList]@()
    foreach ($i in $info_serveur.server_id){
        $serveur_nom=$i+"-("+$info_serveur.server_country[$x]+")"
        $liste_pays += $serveur_nom
        # Remplissage du dico IP
        foreach ($ip in $info_serveur[$x].server_ipv4){
            $serveur_ip[$ip]=$serveur_nom
        }

        # Remplissage du dico Protocol et Port de connexion pour chaque serveur
        $serveur_con[$serveur_nom]=@{TCP=[System.Collections.ArrayList]@();UDP=[System.Collections.ArrayList]@()}
        foreach ($i in $info_serveur[$x].server_ports){
            if ($i -match "TCP"){
                $serveur_con[$serveur_nom]["TCP"] += $i.Split("|")[0]
            }
            else{
                $serveur_con[$serveur_nom]["UDP"] += $i.Split("|")[0]
            }
        }
        $x=$x+1
    }
    return ,$liste_pays ,$serveur_ip ,$serveur_con
}

# Test si IP protégé, avec en retour serveur de connexion
function test_ip{
    param ($serveur_ip)

    $ip = ((new-object net.webclient).DownloadString("http://icanhazip.com")).replace("`n",'')
    $serv=$serveur_ip.$ip
    if ($serv.count -eq "0"){
        $ret="Connexion non sécurisée"
    }
    else{
        $ret="Connexion sécurisée sur le serveur $serv"
    }
    return $ret
}

et un fichier exemple
utilisation module info serveur.ps1

######################################################
#                                                    #
# Initialisation variables                           #
#                                                    #
######################################################

function Get-ScriptDirectory{
    $Private:Invocation = (Get-Variable MyInvocation -Scope 1).Value
    Split-Path $Invocation.MyCommand.Path
}
$path=Get-ScriptDirectory

$fileCustom=Get-Content ("$path\pass.txt")
if (Test-Path $fileCustom){
    $user=$fileCustom[0]
    $pass=$fileCustom[1]
}
else{
    Write-Host "le fichier $path\pass.txt n'existe pas"
}

######################################################
#                                                    #
# Importation module de Fonctions                    #
#                                                    #
######################################################

Import-Module "$path\info serveur VPN"

######################################################
#                                                    #
# Utilisation des fonctions importées                #
#                                                    #
######################################################

### Fonction infos_serveurs
$liste_pays,$serveur_ip,$serveur_con=infos_serveurs $user $pass

# Utilisation des différents retour
echo $liste_pays
echo $serveur_ip."5.39.58.112"
echo $serveur_con["GR1-(Grèce)"]["TCP"]
echo $serveur_con["GR1-(Grèce)"]["UDP"]

### Fonction test IP
$test_protection=test_ip $serveur_ip

echo $test_protection

Comme vous pouvez le constater, nous interrogerons plus le serveur à chaque demande d'information pour obtenir le token (ce dernier étant maintenant enregistré sur le disque).
Les identifiants ne sont plus à donner en dur, ils sont récupéré dans le fichier pass.txt (ce qui nécessite que tous les scripts soient dans le même répertoire).

A+,
Didier.

Hors ligne

#74 2015-03-08 09:56:19

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

Re : Application Freedom-IP en PowerShell

Bonjour,

Hé bien je vois que tu ne chômes pas big_smile
Finalement c'est pas mal ce petit PowerShell cool


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

Hors ligne

#75 2015-03-08 10:25:44

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

Re : Application Freedom-IP en PowerShell

En effet, j'aime bien.
Le gros point négatif est que ce ne soit utilisable que sous Windows.

Hors ligne

Pied de page des forums