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 2367 Date d'inscription mardi 17 avril 2001 Statut Membre 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

18 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre 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 2367 Date d'inscription mardi 17 avril 2001 Statut Membre 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 2367 Date d'inscription mardi 17 avril 2001 Statut Membre 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 2367 Date d'inscription mardi 17 avril 2001 Statut Membre 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 2367 Date d'inscription mardi 17 avril 2001 Statut Membre 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 2367 Date d'inscription mardi 17 avril 2001 Statut Membre 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
Rejoignez-nous