Désactiver le par feu Windows !!

Programmation d'applications complexes
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Désactiver le par feu Windows !!

Message par Mytic »

Voilà voilà....
Je suis entrain de développer un programme qui gère les connexions entre deux pc.
Mais là y’a un problème avec le par feu Windows. !!
Il bloque les connexions…
Donc je dois ajouter à mon programme la possibilité de désactiver ce parfeu ou bien de s’auto ajouté dans la liste des exceptions.
J’ai trouver un programme qui fait ça en VB , mais j’ai pas peu le traduire en PureBasic.
Alors si quelqu’un arrive à l’adapter ça sera vraiment sympa de sa part ^^
Voilà le code VB : :D

Code : Tout sélectionner

 'API pour connaitre la version de WINDOWS
 Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
 Private Type OSVERSIONINFO
 dwOSVersionInfoSize As Long
 dwMajorVersion As Long
 dwMinorVersion As Long
 dwBuildNumber As Long
 dwPlatformId As Long
 szCSDVersion As String * 128
 End Type

 Private Declare Function IsNTAdmin Lib "advpack.dll" (ByVal dwReserved As Long, ByRef lpdwReserved As Long) As Long


 Private Sub Form_Load()


 Dim os As OSVERSIONINFO
 os.dwOSVersionInfoSize = Len(os)
 GetVersionEx os
 'OS = Windows XP ou Windows 2003 donc possible firewall
 If os.dwPlatformId = 2 And os.dwMajorVersion = 5 And (os.dwMinorVersion = 1 Or os.dwMinorVersion = 2) Then

 Dim objShell
 Set objShell = CreateObject("Shell.Application")
 'Verifie que le service Pare feu Windows est démarré obligatoire pour interroger
 'l'objet "HNetCfg.FwMgr" sinon erreur
 If objShell.IsServiceRunning("SharedAccess") = True Then
 Dim fwMgr
 Dim profile
 'cree l'objet firewall
 Set fwMgr = CreateObject("HNetCfg.FwMgr")
 ' recupere les parametres du firewall local
 Set profile = fwMgr.LocalPolicy.CurrentProfile
 'verifie si le firewall est actif
 If profile.FirewallEnabled = False Then
 MsgBox ("Firewall Enabled: " & profile.FirewallEnabled)
 'If CBool(IsNTAdmin(ByVal 0&, ByVal 0&)) = True Then 'si l'utilisateur est administrateur du poste
 'profile.FirewallEnabled = True 'active le firewall
 'End If
 Else
 MsgBox ("Firewall Enabled: " & profile.FirewallEnabled)
 'If CBool(IsNTAdmin(ByVal 0&, ByVal 0&)) = True Then 'si l'utilisateur est administrateur du poste
 'profile.FirewallEnabled = False 'désactive le firewall
 'End If
 End If
 Else
 MsgBox ("Firewall Enabled: Faux")
 'If CBool(IsNTAdmin(ByVal 0&, ByVal 0&)) = True Then 'si l'utilisateur est administrateur du poste
 'objShell.ServiceStart "SharedAccess", True 'pour demarrer le service Pare feu Windows
 'End If
 End If
 End If

 End Sub 
Merci d'avance :wink:
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

salut Mytic

sa ne va pas vraiment t'aide mais j'ai travailler plus d'une fois avec purebasic et les réseau local. Et je n'est jamais eu de soucis avec le par feu.

que fait tu exactement entre les réseaux ?
comment a tu procéder pour établire la connexion ?

fin donne plus de détaille si possible :wink:
voila



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message par Mytic »

Ben j’ai pas besoin de donner des détailles vu qu’un par feu normalement bloque toute les connexions sans autorisation Préalable.
Le meilleur exemple c’est WLM(MSN) , quand tu l’installe il s’ajoute automatiquement dans la liste des exceptions dans le par feu Windows.
Donc, pour les détaille ! Ben les voilà :
J’ai crée il y’a longtemps un programme en VB qui ressemble à l’msn mais avec plus d’option (dessin temps réel en LIVE + video conférence utilisant mes propre codec de compression video que j’ai optimiser pour le réseau + envoi de fichiers avec option reprise + gestion des contactes à l’MSNPLUS + possibilité de voir l’écran du contacte en temps réel + synchronisation du texte pas comme l’msn ou y’a toujours un décalage + base de donnés + control à distance + etc.….) , et il utilise un serveur priver pour la base de données et les connexions non directes.
Bref…
J’utiliser le code tout la haut pour gérer le par feu.
Mais comme je suis passer sur PureBasic je dois l’adapté.
Car ça cause vraiment un problème vu que plusieurs personnes ne savent même pas afficher les dossiers cachés, alors pour configurer un par feu !!
:idea:
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

a ok d'accord.
et bien je ne pas trop t'aider la :?, mais tu as etait voir sur le forum anglais au cas ou ?



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message par Mytic »

Thanks , mais j'ai trouvé la solution :wink:
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Peux tu la poster, stp ?
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message par Mytic »

Dans la commande MSDOS tapez ça :
netsh firewall "suivi de ça :"

set portopening
[ protocol = ] TCP|UDP|ALL
[ port = ] 1-65535
[ [ name = ] nom
[ mode = ] ENABLE|DISABLE
[ scope = ] ALL|SUBNET|CUSTOM
[ addresses = ] adresses
[ profile = ] CURRENT|DOMAIN|STANDARD|ALL
[ interface = ] nom ]

Définit la configuration de port du pare-feu.

Paramètres :

protocol - Le protocole du port.
TCP - Le protocole TCP (Transmission Control Protocol).
UDP - Le protocole UDP (User Datagram Protocol).
ALL - Tous les protocoles.

port - Le numéro du port.

name - Le nom du port (facultatif).

mode - Le mode du port (facultatif).
ENABLE - Autoriser via le pare-feu (par défaut).
DISABLE - Ne pas autoriser via le pare-feu.

scope - L'étendue du port.
ALL - Autorise tout le trafic via le pare-feu (par défaut).
SUBNET - N'autorise que le trafic réseau local (sous-réseau) via le
pare-feu.
CUSTOM - N'autorise que le trafic spécifié via le pare-feu.

addresses - Adresses d'étendue personnalisée (facultatif).

profile - Le profil de configuration (facultatif).
CURRENT - Le profil en cours.
DOMAIN - Le profil du domaine.
STANDARD - Le profil standard.
ALL - Tous les profils.

interface - Le nom de l'interface (facultatif).

Remarques :
'profile' et 'interface' ne peuvent pas être spécifiés ensemble.
'scope' et 'interface' ne peuvent pas être spécifiés ensemble.
'scope' doit être 'CUSTOM' pour pouvoir spécifier 'addresses'.

Exemples :

set portopening TCP 80 MonPortWeb
set portopening UDP 500 IKE ENABLE ALL
set portopening ALL 53 DNS ENABLE CUSTOM
157.60.0.1,172.16.0.0/16,10.0.0.0/255.0.0.0,LocalSubnet
set portopening protocol = TCP port = 80 name = MonPortWeb
set portopening protocol = UDP port = 500 name = IKE mode = ENABLE
scope = ALL
set portopening protocol = ALL port = 53 name = DNS mode = DISABLE
scope = CUSTOM addresses =
157.60.0.1,172.16.0.0/16,10.0.0.0/255.0.0.0,LocalSubnet

En gros vous faites un :
Shell ("netsh firewall set portopening ALL 12 NOM ENABLE ALL")
12 c'est qu'un exemple de port
changer ENABLE par DISABLE pour désactiver le parfeu pour ce port.

Voilà c'est tout en attendant que je vous passe le code. :wink:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Image
Répondre