peut on forcer l'ouverture d'un port en code delphi , et comment proceder , merci .
peut on forcer l'ouverture d'un port en code delphi , et comment proceder , merci .
Quel port ? Et pourquoi faire ?
Dans le cadre d'une application client/serveur il se peut que l'utilisateur ait un firewall qui bloque par exemple le port 5600 , comme l'utilisateur n'y connait rien je voudrais que je puisse forcer ce port 5600 .
Alors si c'est possible : change de firewall !!!!!!!!!!!!!
C'est justement le but d'un firewall de bloquer les accès ! Si tu pouvais passer outre, ça veut dire aussi qu'un programme malveillant pourrait le faire et du coup rendre le fire-wall inutile.
A mon avis c'est possible , je pense notamment à des logiciels qui ouvre des ports comme messenger par exemple.
Messenger ne peut pas ouvrir de port si le firewall est configuré et que tu n'as pas donné ton accord ....
Bonne continuation
Messenger fait parti des programme connus des firewall et donc le firewall sait ce qui est autorisé ou non. Avec les réglages par défaut, les fire wall le laisse faire.
Mon firewall est réglé sur "tout bloquer" et il a bloqué aussi par défaut messenger...
Bonjour a tous,
il me semble qu il y a grosse confusion dans ce que vous dites. Deja il nous faut savoir quelle partie de l application du developpe, le client ou le server ?
Dans le cas du server, il faut en effet que le service soit disponible toujours a partir du meme port (ou bien une certaine rangee de port) afin que l application cliente puisse joindre. La meilleur solution pour l implementation est evidement sur une machine dediee a cette effet avec des moyens de protection adequats.
L application client. Un client NE peut JAMAIS predeterminer le port utiliser avec un server. D une maniere generale le port client est choisi aleatoirement a partir de 1024 (car en general les port 1 a 1024 sont deja utiliser). Il est tres possible qu un Firewall empeche l initialisation d une communication en bloquant tous les ports. C est un probleme que l administrateur reseau doit resoudre .... pas le programmeur.
MSN Messenger. L architecture de MSN est: Client (Emetteur, port unique et aleatoire) -> Server (emplyant toujous le meme port) -> Client (recepteur, port unique et aleatoire). Les Firewalls reconnaissent la signature du soft et le laisse utiliser les ports necessaire ( un port TCP utiliser par communication)
Voila j espere que cela aide
@++
Salut!
C'est la raison pour laquelle j'ai cherché à utiliser autre chose que les sockets pour réaliser mon tchat (jeu d'Echecs en réseau). Les sockets vont super bien pour faire cela, à partir du moment où on utilise un serveur dédié, et qu'il n'y a plus que des clients qui se connectent au serveur... Le problème des sockets sans serveur dédié, est qu'un utilisateur devra tenir le rôle du serveur; Il récupère tous les messages des clients, et les redistribue... C'est souvent bloqué par les firewalls, surtout dans les entreprises... A mon avis, Messenger possède un serveur dédié; Personne ne tient le rôle du serveur dans une communication...
La solution que j'ai choisi pour m'éviter de devoir investir dans un serveur dédié, est de ne pas utiliser les sockets... Mais j'aurais pu aussi choisir d'utiliser un tunnel... C'est d'ailleurs dans cette direction que tu devrais peut-être trouver ton bonheur...
http://www.toolinux.com/linutile/reseau/tunnel/index2.htm#quoi
http://www.routage.org/gre.html
http://www-106.ibm.com/developerworks/java/library/j-tunnel/?dwzone=java
Je crois qu'Indy possède 2 composants pour créer un tunnel: TMaster & TSlavelTunnel...
http://www.indyproject.org/teams/Demo/demolisting80.html (TPC Tunnel)
à+
Sub0,
Je crois que tu fais confusion. Il est impossible d etablir une connexion via le reseau sans Socket.... Même cette histoire de tunnel, ce n est qu une encapsulation de message.
Il est clair que MSN utilise un server dedié le service ne serai pas viable autrement.
Dans ton cas, il faurdra bien à un moment ou à un autre que les "joueurs" aient un endroit dédié pour se retrouver et choisir qui fait quoi. Un peu comme le principe de IRC. Je suis d accord que l architecture client/server est embetetante et restrictive mais en matiere d échelonnage c est bien mieux que ce que tu proposes.
Une architecture qui n utilise pas de server c est du Pair à Pair ..... et d apres ce que je comprends tu veux bypasser les firewalls d entreprise
De plus tu soumets ton applications à un parametre non negligeable ... est ce que les routers situé sur les routes entre les clients supporte tous le tunnelage ???
Enfin, je n ai pas assez de details pour donner un avis complet mais je dirais simplement qu une application pair a pair en Reseau Local est acceptable mais pas en réseaux interconnectés (et pas seulement pour des raisons de securité).
Voilà
@++
Je viens de lire ce message et c'est une question que j'avais déjà posé et qui est resté sans réponse
Ce que je peux dire c que MSN messenger utiliser le protocol UPNP pour demander au firewall d'ouvrir un port. Il faut que le firewall active l'UPNP ce qui est le cas de la plus part des firewall vendu ds le commerce pour les particuliers.
L'UPNP n'est pas tres securisé car n'importe ki sur le reseau sans login ni password peu demander l'ouverture d'un port. Maintenant pour les entreprises l'UPNP n'est jamais activé je pense.
J
e sais faire une demande d'ouverture de port au routeur avec Windows XP mais je n'ai pas trouver comment faire avec Delphi.
Dc si vous trouvé comment ouvrir un port avec l'UPNP et Delphi je suis preneur
Bonsoir,
à lire : Presentation
Bon, j'ai l'impression d'être un idiot là! mais je suis convaincu qu'il y a de serieux problème de comprehension.
Err... utiliser le protocol HTTP... c'est utiliser le protocol TCP (en effet HTTP repose sur le TCP pour fonctioner) et comme on ne peut utiliser TCP sans socket .... on tourne en round.Oui, ce que je voulais dire "sans socket", c'est d'utiliser le protocol http sur le port 80...
Par definition, tu utilises bien une adresse IP sinon ton programme il trouve comment le server? Le protocol TFP lui aussi utilise TCP. Le fait qu il n y ai pas de login ou password est simplement dû à la configuration de ton server.Avec ce prog, je n'utilise aucun IP et pas de tunnel, juste l'adresse d'un script php sur mon serveur ftp, sans donner de login d'accès à aucun moment
Tu n es pas bloqué par les firewalls simplement parce que tu es client dans la communication et non pas server (le port 21 n est pas utiliser quand tu es client). Essaye de faire le server dans l histoire et Essaye de faire tourner l appli dans une organisation de taille résonnable et normalement (si l admin fait son travail ) l application ne devrait marcher qu avec les clients au sein de ton organisation. (Dans mon contrat de travail, il est clairement spécifié que je n'ai pas le droit de faire tourner un server FTP. Qui plus est le firewall bloque le port 21 en communication entrante).Avec ce prog, je ne suis pas bloqué par les firewalls...
Attention "privée" c est different de "sécurisée".... et je peux faire une communication privée et générale sans difficulté au niveau de la gestion client/serveur. En fait, il n'ya que des clients connectés à mon ftp... Qu'en pensez-vous?
Le fait que tes clients joignent le server FTP est l exemple même que j ai donné plus haut. Les clients doivent pouvoir trouver un lieu où se retrouver. La mention du mot server prouve bien qu'une implémentation en pair à pair n'est pas (humainement) faisable (d'après les explcations précédentes j'avais conclu que c'était du P2P)
Le mot de la fin.
Ce n'est pas parce que tu ne codes pas les adresses IP ou bientout ce qui regarde les sockets que tu NE les utilises PAS. Le model OSI a été créer dans ce but. Tu crées une application qui fait quelque chose selon ton design... comment l application se débrouille ce n'est pas ton problème (ou presque). Par exemple, tu écris un programme qui ouvrir un fichier text... est ce que tu codes la vitesse de rotation du disque dur?
Voila j espère que cette fois on parle tous de la même chose.
@++
Salut,Envoyé par YanK
Tu dis avoir lu les messages mais tu ne m'as toujours pas répondu. Quelle partie de l'application veux/dois -tu écrire ? Server ou Client ?
En suite, lors d'une communication avec un server, la machine cliente ouvrira un port aléatoire (mais toujours au dessus de 1024 car en dessous c'est réservé). Le firewall ne devrait pouvoir empêcher cela à moins qu'il soit en moment tout bloquant et très chiant. Peux tu nous préciser le firewall en question?
Maintenant si tu comptes créer 2 applications (1 server et 1 client) qui utilisent les même numero de port.... C'est très bien pour le server (d'ailleurs sans ça c'est même pas la peine). mais pour le client tu rèves imagine que deux clients se connectent ???? Comment le server definit où envoyer les packets ?
Prennons un exemple. Tu es en panne sur la route tu appeles ton assurance.
1/ ton assurance a toujours le même numero (telephone)
2/ Si toi tu dois avoir tjrs le même numero alors tu ne peux appeler que d'un seul endroit.... ou bien d un seul telephone. Imagine un peu le cauchemar que ca pourrai être.
Pour terminer, à moins que tu nous detailles comme il faut ce que tu veux faire, ce que tu dois faire et les conditions dans lesquelles tu penses devoir developper j ai bien peur que l on ne puisse beaucoup t'aider.
@++
Salut!
Tu as raison bien sûr, j'utilise forcément les sockets et un protocol tpc/ip à la base. Mais je ne m'occupe pas de gérer tout ça, je ne récupère pas l'ip des clients pour la donner à d'autres clients et les mettre en communication directe client/serveur... Certains firewalls bloquent cette fonction... Ce tchat fonctionne comme si on accèdait à mon site avec un navigateur (hébergement mutualisé). Je cherche toujours une meilleure solution et je crois que pour bien faire, il m'aurait fallu louer un serveur dédié, mais je trouve trop cher pour ce que j'en fait... Merci Aramis!Par definition, tu utilises bien une adresse IP sinon ton programme il trouve comment le server? Le protocol TFP lui aussi utilise TCP. Le fait qu il n y ai pas de login ou password est simplement dû à la configuration de ton server.
Bonjour,Envoyé par Sub0
Voilà, (cf. souligné) c'est exactement où je voulais en venir . Ca fait plaisir de voir que l'on a pu aidé quelqu un (surtout quand c'est un modo ). Quelque part je pense que le probleme de YanK est du même ressort mais il n'a pas encore répondu
@++
Salut! Ben j'en suis toujours au même point qu'au départ, je n'ai pas de meilleure solution... Si je ne veux pas investir un serveur dédié et que je ne peux pas donner le rôle de serveur aux clients à cause des firewalls, je ne vois pas d'autres solutions... Et toi? ... Merci, à+
Aramis> En fait je voulais juste savoir comment dialoguer en UPNP avec un routeur pour ouvrir un port.
En fait je voulais juste me faire une petite application qui ouvre certain ports pour une machine. Du genre les ports pour emule.
Le routeur et chez moi et c moi qui le configure dc pour l'instant j'ai fixé une ip a ma machine et j'ai fait une redirection de port. Dc la aucun probleme pour emule par contre le routeur n'aime pas que je fixe une ip alors qu'il est serveur DHCP, du coup il ne me reconnait pas et me bloc l'UPNP dc certaines options MSN.
Ce que je voulais faire c laisser la machine se faire attribuer une adresse ip par le serveur DHCP, ainsi j'aurais l'UPNP pour MSN et enfin faire un petit service en Delphi qui ouvre une liste de ports utiles à la machine (emule etc...) via l'UPNP. De cette facon tout marcherait.
Ca serait plus simple si ce con de routeur pouvait attribuer une ip fixe a une adresse MAC mais j'ai pas l'impression qu'il y est l'option.
Pourtant je l'ai vu sur d'autre routeurs.
Re,
Je suis un peu perdu (perdu l habitude de lire du français ). Peux tu definir ce que le client doit faire et ce que le server doit faire. Prends l'exemple de MSN et les transfert de fichier. Si je t envoie un fichier (i.e je suis server) et tu le receptionnes. Le fait que la communication passe par un point central n'est pas un problème en soi.
En espèrant avoir était plus clair.
@++
A mon avis, dans le cas d'un transfert de fichier avec Messenger, il ya 2 clients (utilisateurs envoyant et receptionnant le fichier) et un serveur intermédiare qui est dédié... Ai-je raison de croire cela?
En fait y'a ni client ni serveur je veux juste faire une appli Delphi qui va demander au routeur, via l'UPNP, d'ouvrir un port.
Je veux ouvrir des ports pour des applications qui existe deja.
En gros je cherche a faire une appli qui envoie une requete au routeur en lui disant le port "5554" renvoi le sur la machine d'ip "192.168.0.6" et sur le port "5554". C'est comme ca que marche le protocole UPNP!
Partager