Avoir son IP pricipale et non celle donnée par le routeur

Signaler
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010
-
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010
-
Salut
mon prog qui utilise des winsok marchais parfaitement, mais la, quand j'ai changer mon modem avec un routeur, il me donne plus mon ip grace a:


System.Net.
IPHostEntry LocalHost = System.Net.
Dns.GetHostByName(
"");


HostIp = LocalHost.AddressList[LocalHost.AddressList.Length - 1];





mais il me donne celle que le routeur passe a mon poste, 10.0.0.13 je pense, maintenant je veux savoir comment avoir mon ip que le fournisseur donne a le routeur?? et aussi SQ deux applications dans deux postes avec le même routeur peuvent utiliser le même port??

Merci

YaoYao !!
http://csharp.over-blog.com

13 réponses

Messages postés
264
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
12 juin 2013
3
Au yeux de la toile tu ne possede qu'une seule adresse IP. c'est celle du routeur.

Pour les PC qui sont sur le routeur il possede chacun une adresse
interne qui n'est pas visible pour internet. Si tu veux que ton
ordinateur puisse etre vu de l'exterieur il faut mapper un port.



A+
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Ton routeur t'as donné une IP dynamique ? Il a donc un serveur dhcp. Donc 10.0.0.13 est bien l'IP de ton poste.

Pour récuperer l'adresse IP du routeur (l'adresse connectée, pas du
coté local), je ne sais pas comment tu pourrais faire (via du code en
C#, j'entends).



Et pour répondre a ta question, 2 applications sur 2 ordinateurs
différents peuvent bien évidement utiliser le meme port de connexion
pour se connecter a un serveur (C'est le routeur qui va gérer ca
ensuite).

Pour un port d'écoute, la c'est plus compliqué. (Si tes applications
sont des serveurs, donc). A ce moment la, c'est a toi de dire au
routeur vers quelle IP de ton reseau il doit router les paquets qui
arrivent sur un port donné.

Pour pouvoir faire tourner 2 memes serveurs sur le meme reseau, il te
faut leur donner un port d'écoute différent. (et dire a ton routeur
vers quelle IP router les paquets)

Mx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Grillé ^^

Mx
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
http://ip.wappu.tv/

Du utilise un webclient et tu parses. C'est ce qu'il y a de plus rapide / efficasse

::|The S@ib|::
MVP C#.NET
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
ou sinon

checkIp.dyndns.org

Si tu veux faire plsu propre et que tu as un routeur UPnP

UPnPNATClass nat=new UPnPNATClass();
if (nat!=null)
{
IStaticPortMappingCollection maps=nat.StaticPortMappingCollection;
if (maps!=null)
{
foreach (IStaticPortMapping map in maps)
if (map!=null)
{
Console.WriteLine("External address:
{0}",map.ExternalIPAddress);
break;
}
}
}

::|The S@ib|::
MVP C#.NET
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

je commence a piger, mais il me faut qu'une commande, c'est quand mon listener accepte une connexion, qu'il l'envoie a un autre port??? un peu comme ca

TCPListener.AcceptSocket(); et je lui montre le port la

dans ce cas, je ne v mapper que le port de l'ecout principale (2000), c ca???

et la , mon routeur (OvisLink) me donne bcp de truc pour les ports, comme vais-je les remplir??

Merci

YaoYao !!
http://csharp.over-blog.com
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Tu n'as rien a changer dans ton code, c'est le routeur qui s'occupe de tout.

Par contre c'est a toi de définir via l'interface de ton routeur vers
quel PC tu veux router les paquets destinés a un port donné. Si ton
serveur ecoute sur plusieurs ports, alors oui, tu devras tous les
référencer dans le routeur.

Mx
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Oui, mais le problème, c'est que avant , quand le client se connecte a mon port 2000, je lui renvois "2010" et la, je crée un autre listener a 2010 et le client essaie de se connecter et je l'accepte, et voila, il communique dans son prore port, mais avec un routeur, je dois référencer qu'un seul port c'est le 2000, car je peux pas référencer de 2000 à 2500 si 500 personnes se connectent, et avec le listener de 2000, je veux que directement quand il accepte une demande, je lui montre un port et sans réenvoyer ce port et créer un autre listener, la communication commence avec ce port.en + , je n'ai pas trouver un coin dans la configuration de mon routeur ou je peux ajouter des ports que cette partie que je vous ai publier en haut, et je veux bien que vous me montrez koi faire dedans, mci

YaoYao !!
http://csharp.over-blog.com
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Houf j'ai pu référencer le port 2000, la première copnnexion marche, mais la deuxième, quand il le réenvoie au port 2001, il se bloke, mtna je dois savoir comment accepter un socket, et en même temps ne pas le laisser dans le port 2000.

Merci pour votre aide

YaoYao !!
http://csharp.over-blog.com
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Si la plage de ports utilisée va de 2000 a 2500, alors normalement,
dans l'endroit ou tu configure ceci dans ton routeur, tu lui dis de
rediriger vers ton serveur tous les ports allant de 2000 a 2500... Mais
bon c'est pas tres sécurisé tout ca.



Ou alors, tu mets ton PC serveur dans une DMZ, et il se prend tous les coups, mais accepte toutes les connexions... ^^

Mx
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

mais je pense que c très faisable, voila le shema ,

-un serveur sur l'ecout dans le port 2000
-un client se connecte via le port 2000 avec le serveur
-le serveur accepte le client mais le passe a un autre port pour ne pas charger le port 2000 de la réception

je v chercher poru trouver ca , c la seule chose qui me reste , je pense bien avoir vu dans un tutorial de c# sur les serveurs un shéma qui montre en dessin ces trucs, et en bas yavais le téléchargement de la source mais moi je l'ai pas télécharger, sniiiif, il me reste qu'un espoir c'est qu'un mvp passe comme ce qu'il fé dans tt les sujets, et mettre sa bonne réponse

A L'AIDE COCORICOOOOOOOOOOOOOOOOOOOO
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

mais ya pas tcplistener.bind??

YaoYao !!
http://csharp.over-blog.com