Adresse IP Valide?

Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019
- 19 mars 2006 à 13:48
TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
- 31 oct. 2007 à 11:35
Bonjour,

Je voulai savoir s'il existai une class permettant de verifier si une ip contenu dans une string etait valide. en renvoyant un bool ou un int?

merci
A voir également:

18 réponses

TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
23
19 mars 2006 à 14:04
Oui les expression regulières.

using System.Text.RegularExpressions;


public static Regex regex = new Regex(
@"(?<First>2[0-4]\d|25[0-5]|[01]?\d\d?)\.(?<Second>2[0-4]\d|25"
+ @"[0-5]|[01]?\d\d?)\.(?<Third>2[0-4]\d|25[0-5]|[01]?\d\d?)\.(?"
+ @"<Fourth>2[0-4]\d|25[0-5]|[01]?\d\d?)",
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);

::|The S@ib|::
MVP C#.NET
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 14:06
Merci je vais essayer.
0
cs_keisuke
Messages postés
60
Date d'inscription
vendredi 16 juillet 2004
Statut
Membre
Dernière intervention
14 janvier 2009

19 mars 2006 à 14:06
il faut utilisé le RegEx, pour savoir si elle correspond bien au format: 000.000.000.000
désolé je suis débutant, alors je ne sais pas exactement.mais j'essai d'aidé.
j'ai trouvé un truc sur le site:
http://www.csharpfr.com/infomsg/SAISIE-ADRESSE-IP-DANS-TEXTBOX_221106.aspx
@+

The Takahashi Keisuke
0
cs_keisuke
Messages postés
60
Date d'inscription
vendredi 16 juillet 2004
Statut
Membre
Dernière intervention
14 janvier 2009

19 mars 2006 à 14:07
sorry j'avais pas vu que quelqu'un avais répondu, j'été entrain d'écrire.
j'mescuse.

The Takahashi Keisuke
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 14:08
ok pour la definition, mais comment je m'en sert?
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 14:16
ok trouvé, je vais essayer avec isMatch (string)
Si ca marche je valide la reponse.
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 14:26
J'ai une erreur lorsque j'execute le new regex.
ArgumentOutOfRangeException
.........
Ca vient d'ou?

PS : Je le lance sur un pocket pc
0
TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
23
19 mars 2006 à 14:43
Ca vient très probablement d'ailleurs dans le code.

Cette fonction marche très bien.

::|The S@ib|::
MVP C#.NET
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 14:48
T'as d'autre idées?

Pour info, j'essaye de savoir si dans un string j'ai une ip ou un nom d'hote pour faire un dns.resolve si c'est un nom d'hote.
Dns.Resolve ne fonctionne pas avec une ip dans le string dans mon pocket pc. erreur renvoyé (hote inconnu)....
0
TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
23
19 mars 2006 à 14:57
Je viens de re tester ce code il marche.

MOntre comment tu l'utilises.

::|The S@ib|::
MVP C#.NET
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 15:17
je te donne tout le code du fichier
J'espere que ca te va.

C'est un copier coller de visual

public
class Client


{



public
static Socket socket =
null;



//public static string IPAdresse = "192.168.1.10";



public
static
string strHoteName;



public
static
int iPort;


// public static string strNameIPHote = "xtreme";



private IPEndPoint endPoint =
null;



private IPAddress ipServer =
null;


// public static int port = 80;



public
static Regex regex;



private
static
bool iResolveErreur;



public Client()


{


InitializeClient();


Connect();


}



public
static
void Net_Client_Main()


{



new Client();


}



public
static
int NetSend (
string msg)


{


Client UneInstanceClass =
new Client ();


UneInstanceClass.SendMessage (msg);



//Thread.Sleep (30000);


UneInstanceClass.SendMessage ("*Alive*");



//UneInstanceClass.Client_Closing ();



return 1;


}



private
void InitializeClient()


{



string IPAdress="test";


IPAddress ipServer;



try


{


regex =
new Regex(


@"(?<First>2[0-4]\d|25[0-5]|[01]?\d\d?)\.(?<Second>2[0-4]\d|25"


+ @"[0-5]|[01]?\d\d?)\.(?<Third>2[0-4]\d|25[0-5]|[01]?\d\d?)\.(?"


+ @"<Fourth>2[0-4]\d|25[0-5]|[01]?\d\d?)",


RegexOptions.IgnoreCase


| RegexOptions.CultureInvariant


| RegexOptions.IgnorePatternWhitespace


| RegexOptions.Compiled


);


}



catch (ArgumentException e)


{


MessageBox.Show (e.Message);


}


iResolveErreur =
false;



if (regex.IsMatch (strHoteName))
// test si strHoteName contient une adresse ip


{


IPAdress = strHoteName;


}



else


{



try


{


IPHostEntry hostInfo = Dns.Resolve(strHoteName);



// ipServer = hostInfo.AddressList[0];


IPAdress = hostInfo.AddressList[0].ToString();


}



catch (SocketException e)


{


MessageBox.Show (e.Message);


iResolveErreur =
true;


}


}



if (!iResolveErreur)


{


ipServer = IPAddress.Parse(IPAdress);
// Changer l'adresse du serveur


endPoint =
new IPEndPoint(ipServer, iPort);


socket =
new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);


}


}



private
void Connect()


{



if (!iResolveErreur)


{



try


{


socket.Connect(endPoint);



//MessageBox.Show("Connexion au serveur OK");


}



catch(Exception e)


{


MessageBox.Show(e.Message);


}


}


}



public
void SendMessage(
string msg)


{



try


{



byte[] temp = System.Text.Encoding.UTF8.GetBytes(msg);


socket.Send(temp, SocketFlags.None);


}



catch(Exception e)


{


MessageBox.Show(e.ToString());


}


}



public
static
void NetSendMessage(
string msg)


{



try


{



byte[] temp = System.Text.Encoding.UTF8.GetBytes(msg);


socket.Send(temp, SocketFlags.None);


}



catch(Exception e)


{


MessageBox.Show(e.ToString());


}


}



public
static
void Client_Closing()


{



if(socket !=
null && socket.Connected)


{


socket.Close();


}


socket =
null;


}


}
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 15:27
Petite precision, ton code fonctionne tres bien sur pc, mais ne fonctionne pas sur pocket pc....
0
TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
23
19 mars 2006 à 15:56
ESsaye cette expression là :

([01]?\d\d?|2[0-4]\d|25[0-5])

::|The S@ib|::
MVP C#.NET
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 16:47
Tu pourrai me donner la definition complete stp. Je pige rien dans la definition.
Merci

Ps : desolée pour le temps d'attente. guost oblige cause plantage aleatoire...
0
TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
23
19 mars 2006 à 18:14
public static Regex regex = new Regex(
@"([01]?\d\d?|2[0-4]\d|25[0-5])
RegexOptions.IgnoreCase
| RegexOptions.CultureInvariant
| RegexOptions.IgnorePatternWhitespace
| RegexOptions.Compiled
);

::|The S@ib|::
MVP C#.NET
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 18:56
meme erreur.....
0
Gefkuz
Messages postés
61
Date d'inscription
samedi 23 juillet 2005
Statut
Membre
Dernière intervention
18 mars 2019

19 mars 2006 à 18:57
tant pis t'embete pas plus, je me suis debrouillé autrement

Merci pour tout ;)
0
TheSaib
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
23
31 oct. 2007 à 11:35
Tu peux utiliser ce sample :
http://msdn2.microsoft.com/fr-fr/library/ka7h9fze(vs.80).aspx

::|The S@ib|::
MVP C#.NET
0