[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Lloyd Dupont

9/30/2003 11:54:00 PM

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 ?


5 Answers

jimblizz [ms]

10/1/2003 12:10:00 AM

0

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/c...
Microsoft

Your Potential. Our Passion.

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

"Lloyd Dupont" <net.galador@ld> wrote in message
news:OP8sO46hDHA.2984@TK2MSFTNGP11.phx.gbl...
> 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 ?
>
>


Lloyd Dupont

10/1/2003 2:52:00 AM

0

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 [MSFT]" <jimblizz@online.microsoft.com> wrote in message
news:3f7a1b41$1@news.microsoft.com...
> 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/c...
> Microsoft
>
> Your Potential. Our Passion.
>
> This posting is provided as is, without warranty, and confers no rights.
>
> "Lloyd Dupont" <net.galador@ld> wrote in message
> news:OP8sO46hDHA.2984@TK2MSFTNGP11.phx.gbl...
> > 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 ?
> >
> >
>
>


Michael Giagnocavo

10/1/2003 3:26:00 AM

0

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" <net.galador@ld> wrote in message
news:%23$vZ5b8hDHA.1508@TK2MSFTNGP10.phx.gbl...
> 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 [MSFT]" <jimblizz@online.microsoft.com> wrote in message
> news:3f7a1b41$1@news.microsoft.com...
> > 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/c...
> > Microsoft
> >
> > Your Potential. Our Passion.
> >
> > This posting is provided as is, without warranty, and confers no rights.
> >
> > "Lloyd Dupont" <net.galador@ld> wrote in message
> > news:OP8sO46hDHA.2984@TK2MSFTNGP11.phx.gbl...
> > > 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 ?
> > >
> > >
> >
> >
>
>


Juan Gabriel Del Cid

10/1/2003 9:52:00 AM

0

> 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


Lloyd Dupont

10/2/2003 3:00:00 AM

0

ho, cool ....
I will use that for my apps.

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

"Juan Gabriel Del Cid" <jdelcid@atrevido.nospam.net> wrote in message
news:ehpSmGAiDHA.2120@TK2MSFTNGP10.phx.gbl...
> > 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
>
>