Page 1 sur 1
[..] TCP avec ip publique
Posté : jeu. 03 avr. 2014 21:59
par leoleolth
Bonsoir,
Est-il possible d'utiliser les fonctions TCP d'autoit autrement qu'en local ?
C'est forcément possible mais je n'y arrive pas.
Quand je lance leclient avec l'IP publique du Pc sur lequel le serveur tourne, il n'y a pas d'erreur mais le client ne se connecte pas au serveur.
Peut-être est-ce un problème de port ?
D'ailleurs quel port utiliser ? Je ne souhaite pas ouvrir de port car le script doit être exécuté chez des amis qui, je pense, n'ont pas envié d'ouvrir leur port (et ne savent pas le faire). Y a-t-il un moyen de tester les ports pour voir lesquels sont ouverts et utilisables ?
Voici les scripts:
Server:
► Afficher le texte
Code : Tout sélectionner
Dim $ip = @IPAddress1
Dim $port = 80
TCPStartup()
Dim $listenSocket = TCPListen($ip, $port)
Do
$socket = TCPAccept($listenSocket)
Until $socket <> -1
While 1
$recv = 0
$recv = TCPRecv($socket, 20)
If $recv <> 0 Then MsgBox(0, "", BinaryToString($recv))
Sleep(10)
Wend
Client:
► Afficher le texte
Code : Tout sélectionner
Dim $ip = @IPAddress1
Dim $port = 80
TCPStartup()
Dim $socket = TCPConnect($ip, $port)
TCPSend($socket, "test")
Merci de votre aide.
Re: [..]TCP avec ip publique
Posté : jeu. 03 avr. 2014 22:05
par Tlem
Ce type de question a déjà été évoqué. Cela n'est pas possible de la manière dont vous voulez le faire.
Un système client/serveur avec un client d'un côté d'une box et le serveur de l'autre côté d'une autre box ne peuvent dialoguer que si les communications sont dirigées au travers des box ou par l'intermédiaire d'un tiers extérieur.
Faites des recherches sur le forum, cela est expliqué.
Envoyé depuis mon appareil mobile.
Re: [..]TCP avec ip publique
Posté : jeu. 03 avr. 2014 22:32
par jguinch
Pour compléter ce que dit le boss, le "problème" n'est pas lié à AutoIt, mais au réseau.
Les logiciels qui peuvent dialoguer d'un poste à un autre à travers Internet (sans modifier quoi que ce soit au niveau de la configuration de la box ou du routeur) passent forcément pas un serveur relai. (ex : teamviewer, jeux...)
Re: [..]TCP avec ip publique
Posté : jeu. 03 avr. 2014 22:53
par leoleolth
Je me suis mal expliqué.
Je souhaite pouvoir utiliser un logiciel client depuis mon Pc et un logiciel serveur chez un ami.
Je pourrais ainsi lui envoyer des messages sous forme de MsgBox.
Mais lorsque que je mets l'IP du Pc sur lequel le serveur tourne dans le logiciel client à la place de @IPAddress1, ça ne fonctionne pas.
Merci
Re: [..]TCP avec ip publique
Posté : jeu. 03 avr. 2014 23:00
par jguinch
J'avais bien compris ta demande.
Si tu veux que ton ami n'ait rien à configurer, c'est pas la peine :
Ton programme va tenter d'établir une connexion avec l'adresse IP publique (qui sera celle de la box de ton pote) sur un port que tu auras défini (par ex : 12345) : la box verra un truc arriver sur le port 12345, mais ne se sentira pas concernée par cette demande, puisque pour elle il n'y a rien sur ce port (d'où la nécessité de définir des règles de forwarding).
Re: [..] TCP avec ip publique
Posté : jeu. 03 avr. 2014 23:27
par leoleolth
Ok. Que faut-il modifier dans le script ?
Veuillez m'excuser pour ma faible connaissance des réseaux.
Re: [..] TCP avec ip publique
Posté : jeu. 03 avr. 2014 23:31
par Tlem
Bonsoir leoleolth.
Comme je l'ai expliqué, ce sujet et les détails qui vont avec ont largement été discutés sur ce forum. Faites quelques recherches et vos connaissances concernant ce sujet en seront enrichies.
Notre grand ami le moteur de recherche G..... vous donnera aussi pas mal d'explications.
Bonne lecture.
Re: [..] TCP avec ip publique
Posté : jeu. 03 avr. 2014 23:35
par leoleolth
Très bien, pouvez-vous m'indiquer la solution, j'ai passé la soirée dessus !
Merci pour votre aide mais Google (qui est un incroyable moteur de recherche) ne m'a pas aidé.
Merci
Re: [..] TCP avec ip publique
Posté : jeu. 03 avr. 2014 23:54
par Tlem
leoleolth a écrit :j'ai passé la soirée dessus !
La soirée seulement ...
Une partie des réponses vous ont été indiquées par jguinch. Certes il n'y a pas les détails, mais comme tout est dispo avec un peu de recherches, vous aurez vos réponses.
Re: [..] TCP avec ip publique
Posté : jeu. 03 avr. 2014 23:56
par leoleolth
Merci pour vos réponses, je n'ai toujours pas compris. Tant pis.
Re: [..]TCP avec ip publique
Posté : ven. 04 avr. 2014 00:19
par Tlem
Ah !
Alors juste pour clarifier "un peu" :
tlem a écrit :Cela n'est pas possible de la manière dont vous voulez le faire.
jguinch a écrit :Si tu veux que ton ami n'ait rien à configurer, c'est pas la peine
...
d'où la nécessité de définir des règles de forwarding <= Dans le routeur.
Les logiciels qui peuvent dialoguer d'un poste à un autre à travers Internet (sans modifier quoi que ce soit au niveau de la configuration de la box ou du routeur) passent forcément pas un serveur relais.
Re: [..] TCP avec ip publique
Posté : ven. 04 avr. 2014 08:03
par jguinch
Les termes que tu cherches sont :
- Port forwarding
- NAT
- Redirection de port
- ...
http://fr.wikipedia.org/wiki/Redirection_de_port
Re: [..] TCP avec ip publique
Posté : mer. 16 avr. 2014 22:29
par leoleolth
Bonsoir,
J'ai regardé cu côté d'UPnP, ça ne me convient pas?
Existe-t-il un protocle de connexion et des fonctiond, qui permettraenit à deux ordinateurs de communiquer à distance, hors d'un réseau local en AutoIt ?
Re: [..] TCP avec ip publique
Posté : mer. 16 avr. 2014 22:56
par Tlem
Non
Et non.
Envoyé depuis mon appareil mobile.
Re: [..] TCP avec ip publique
Posté : mer. 16 avr. 2014 23:01
par leoleolth
Ok, merci.
J'ai eu l'idée de passer par un serveur FTP ou une base de données pour faire communiquer les deux ordinateurs.
Par exemple, l'un des deux ordis modifierait un fichier texte sur un serveur FTP et le second ordinateur pourrait lire ce fichier et donc exécuter quelquechose.
Qu'en pensez-vous ? Avez-vous une astuce de ce genre ?
Merci !
Re: [..] TCP avec ip publique
Posté : jeu. 17 avr. 2014 00:52
par Tlem
Toujours pas. Si les communications ne sont pas dirigées d'un client à l'autre, vous ne pourrez rien faire.
Malgré les explications déjà données, voici quelques éléments :
Le client A est dans un réseau privé derrière une Box.
L'IP du PC est 192.168.1.10.
L'IP publique de la Box (celle que l'on voit d'Internet) est 94.128.10.32
Le client B est aussi dans un réseau privé derrière une Box.
L'IP du PC est 192.168.1.5.
L'IP publique de la Box est 92.240.23.10
Lorsque A veux communiquer vers B, il est obligé d'envoyer ses paquets vers l'appareil visible sur Internet, qui est la Box de B. Donc il envoi un paquet de l'adresse IP interne 192.168.1.10, qui est vue de l'extérieur comme étant l'IP publique 94.128.10.32 vers l'adresse publique de B qui est 92.240.23.10. Mais comment la Box peut elle savoir que le paquet de A est destiné à B !!!
Hé bien elle ne peux pas deviner car les paquets qui lui arrivent sans arrêt ne proviennent pas forcément de A et ne sont pas forcément destiné à B (en vice versa).
Pour arriver à faire quelque chose, Il faut le lui dire explicitement et donc il faut rentrer dans la conf de la Box et lui expliquer que ce qui arrive sur tel port de communication doit être redirigé vers l'adresse IP interne de B (192.168.1.5).
L'autre possibilité met en jeux un serveur central. Le serveur central est déjà configuré pour recevoir des requêtes (cryptées) directes par tel ou tel port de communication.A ce connecte au serveur et B en fait de même. Là la liaison est faites et est maintenue entre A et B et donc le dialogue peut ce faire ...
Le fait de passer par un FTP ou une base de donnée n'y changera rien. Vous devez créer un "tunnel de communication" entre les deux PC (pour une discussion privée). Si vous voulez relier plus de PC là c'est le serveur "web" qui devra être configuré pour la circonstance qui ce chargera de donner les infos aux clients.
Re: [..] TCP avec ip publique
Posté : jeu. 17 avr. 2014 08:46
par jguinch
Thierry, je pense que l'idée de leoleolth était de passer par un FTP ou base de données publique.
Dans ce cas, c'est possible (c'est d'ailleurs la méthode la plus simple), par contre, on ne parle plus des fonctions TCP...
Re: [..] TCP avec ip publique
Posté : jeu. 17 avr. 2014 09:46
par Tlem
J'avais très bien compris, mais lire/écrire en boucle dans un fichier sur un FTP, c'est pas top pour dialoguer avec quelqu'un !!!
Maintenant, si c'est juste pour mettre un Flag et un message qui sera lu par un ou plusieurs clients, alors pourquoi pas. Dans ce cas, un simple fichier texte fait l'affaire, mais cela ne pourra pas être en temps réel car si le script coté client lit le fichier en boucle toutes les secondes, bonjours le nombre de requêtes et l'apparence d'un DDOS ... ^^
Après, si c'est juste pour afficher quelque chose au lancement du script coté client, alors oui, "c'est la solution la plus simple".

Re: [..] TCP avec ip publique
Posté : jeu. 17 avr. 2014 12:04
par TommyDDR