host ...

  • Thread starter Thread starter Lloyd Dupont
  • Start date Start date
L

Lloyd Dupont

In my App the user could manually enter some host computer location
for this he has the choice to enter either the IP or host name.
I get the IP address internally with the following code sample:
IPAddress ia;
try
{
ia = IPAddress.Parse(host);
}
catch(FormatException)
{
IPHostEntry he = Dns.GetHostByName( host );
ia = he.AddressList[0];
}


I wonder if there is another way to do that which would avoid the try catch,
any tips ?
 
Hi Lloyd,

Thanks for posting to the newsgroup.

You could potentially run this through a regular expression to see if it's
in the right format for either a machine name or an IP address and then use
the appropriate method -- Parse() or GetHostByName(). I'd still use the try
/ catch block in case there are any problems you miss.

Hope this helps,
bliz

--
Jim Blizzard, MCSD .NET
Community Developer Evangelist | http://www.microsoft.com/communities
Microsoft

Your Potential. Our Passion.

This posting is provided as is, without warranty, and confers no rights.
 
well you agree me ;-)
I though my code was ok, but I read on many thread recently than one should
prefer erro code to try catch as a program logic as it has really bad
performance impact.

anyway this parsing is done but a few times, so that should be ok ...

Jim Blizzard said:
Hi Lloyd,

Thanks for posting to the newsgroup.

You could potentially run this through a regular expression to see if it's
in the right format for either a machine name or an IP address and then use
the appropriate method -- Parse() or GetHostByName(). I'd still use the try
/ catch block in case there are any problems you miss.

Hope this helps,
bliz

--
Jim Blizzard, MCSD .NET
Community Developer Evangelist | http://www.microsoft.com/communities
Microsoft

Your Potential. Our Passion.

This posting is provided as is, without warranty, and confers no rights.

Lloyd Dupont said:
In my App the user could manually enter some host computer location
for this he has the choice to enter either the IP or host name.
I get the IP address internally with the following code sample:
IPAddress ia;
try
{
ia = IPAddress.Parse(host);
}
catch(FormatException)
{
IPHostEntry he = Dns.GetHostByName( host );
ia = he.AddressList[0];
}


I wonder if there is another way to do that which would avoid the try catch,
any tips ?
 
You are right about that. I hope MS provides a non-exception way to do
Parsing sometime... :). If you're worried about performance, then running
some basic tests can help prevent some exceptions being thrown. If it's not
going to happen often, then don't even worry about it.
-mike
MVP

Lloyd Dupont said:
well you agree me ;-)
I though my code was ok, but I read on many thread recently than one should
prefer erro code to try catch as a program logic as it has really bad
performance impact.

anyway this parsing is done but a few times, so that should be ok ...

Jim Blizzard said:
Hi Lloyd,

Thanks for posting to the newsgroup.

You could potentially run this through a regular expression to see if it's
in the right format for either a machine name or an IP address and then use
the appropriate method -- Parse() or GetHostByName(). I'd still use the try
/ catch block in case there are any problems you miss.

Hope this helps,
bliz

--
Jim Blizzard, MCSD .NET
Community Developer Evangelist | http://www.microsoft.com/communities
Microsoft

Your Potential. Our Passion.

This posting is provided as is, without warranty, and confers no rights.

Lloyd Dupont said:
In my App the user could manually enter some host computer location
for this he has the choice to enter either the IP or host name.
I get the IP address internally with the following code sample:
IPAddress ia;
try
{
ia = IPAddress.Parse(host);
}
catch(FormatException)
{
IPHostEntry he = Dns.GetHostByName( host );
ia = he.AddressList[0];
}


I wonder if there is another way to do that which would avoid the try catch,
any tips ?
 
I wonder if there is another way to do that which would avoid the try
catch,
any tips ?

You could always use the Dns.GetHostByName method, it suports both hostname
and IP address. If you pass it a name (e.g. "www.google.com"), it will
resolve the address. If you pass it an IP address (e.g. "216.239.41.99"), it
will just parse that and return it as the address.

Hope this helps,
-JG
 
ho, cool ....
I will use that for my apps.

anyway on pocket pc I had some bad experience with Dns.GetHostByName()
 
Back
Top