|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Convert from network name to ip addressI have a function that reads a file but fails if I pass it a network device
name instead of an ip address eg:- ReadFunction("\\NAS\Myfolder\Myfile.txt") <--- Fails ReadFunction("\\192.168.2.2\Myfolder\Myfile.txt") <--- Works So how do I convert a network devices name to it's ip address? ie. Convert \\NAS\ to \\192.168.2.2\ Thanks Robert Am 31.05.2010 14:56, schrieb Roidy:
> I have a function that reads a file but fails if I pass it a network device Try this: (passing "NAS")> name instead of an ip address eg:- > > ReadFunction("\\NAS\Myfolder\Myfile.txt") <--- Fails > ReadFunction("\\192.168.2.2\Myfolder\Myfile.txt") <--- Works > > So how do I convert a network devices name to it's ip address? > ie. Convert \\NAS\ to \\192.168.2.2\ System.Net.Dns.GetHostByName(ByVal String) As System.Net.IPHostEntry Does it fail, too? -- Armin Thanks Armin,
VB complains that GetHostByName is obsolete and tells you to use GetHostEntry, which works perfectly:- Dim hostname As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry("NAS") Dim ipaddress() As System.Net.IPAddress = hostname.AddressList Now it just an easy task to write a function to strip out the network device name from the path and replace it with the resulting IP address. Thanks Robert Show quoteHide quote "Armin Zingler" <az.nospam@freenet.de> wrote in message news:eoljMHNALHA.348@TK2MSFTNGP06.phx.gbl... > Am 31.05.2010 14:56, schrieb Roidy: >> I have a function that reads a file but fails if I pass it a network >> device >> name instead of an ip address eg:- >> >> ReadFunction("\\NAS\Myfolder\Myfile.txt") <--- Fails >> ReadFunction("\\192.168.2.2\Myfolder\Myfile.txt") <--- Works >> >> So how do I convert a network devices name to it's ip address? >> ie. Convert \\NAS\ to \\192.168.2.2\ > > > Try this: (passing "NAS") > > System.Net.Dns.GetHostByName(ByVal String) As System.Net.IPHostEntry > > Does it fail, too? > > > -- > Armin > This is what I knocked together to check the path to see if it's network
path and then replace the device name with it's IP address. Seems to work, can you see any problems I might face using this? or is there a better way? Public Function PathFixer(ByVal path As String) As String If path.StartsWith("\\") Then ' Check to see if it's a network path Dim output As String Dim splits() As String = path.Substring(2, path.Length - 2).Split("\") Dim hostname As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(splits(0)) Dim ips() As System.Net.IPAddress = hostname.AddressList output = path.Remove(2, splits(0).Length) Return output.Insert(2, ips(0).ToString) Else Return path End If End Function Thanks Robert "Roidy" <roidy.parn***@ntlworld.com> wrote in message news:0_QMn.5693$QF7.3830@hurricane...Show quoteHide quote > Thanks Armin, > > VB complains that GetHostByName is obsolete and tells you to use > GetHostEntry, which works perfectly:- > > Dim hostname As System.Net.IPHostEntry = > System.Net.Dns.GetHostEntry("NAS") > Dim ipaddress() As System.Net.IPAddress = hostname.AddressList > > Now it just an easy task to write a function to strip out the network > device name from the path and replace it with the resulting IP address. > > Thanks > Robert > > > "Armin Zingler" <az.nospam@freenet.de> wrote in message > news:eoljMHNALHA.348@TK2MSFTNGP06.phx.gbl... >> Am 31.05.2010 14:56, schrieb Roidy: >>> I have a function that reads a file but fails if I pass it a network >>> device >>> name instead of an ip address eg:- >>> >>> ReadFunction("\\NAS\Myfolder\Myfile.txt") <--- Fails >>> ReadFunction("\\192.168.2.2\Myfolder\Myfile.txt") <--- Works >>> >>> So how do I convert a network devices name to it's ip address? >>> ie. Convert \\NAS\ to \\192.168.2.2\ >> >> >> Try this: (passing "NAS") >> >> System.Net.Dns.GetHostByName(ByVal String) As System.Net.IPHostEntry >> >> Does it fail, too? >> >> >> -- >> Armin >> > Am 31.05.2010 18:18, schrieb Roidy:
> This is what I knocked together to check the path to see if it's network If it works fine for you, it's ok. :-) Though I wonder why your "ReadFunction"> path and then replace the device name with it's IP address. Seems to work, > can you see any problems I might face using this? or is there a better way? works with the IP but not with the host name, while resolving the host name before using GetHostEntry seems to work. What does 'ReadFunction" do with the string? Apart from this: - A possible problem is that the host name can not be resolved. I can't test the situation because my provider seems to redirect all unknown host names to the same IP. - always enable Option Strict - make the function Shared Show quoteHide quote > Public Function PathFixer(ByVal path As String) As String > If path.StartsWith("\\") Then ' Check to see if it's a network path > Dim output As String > Dim splits() As String = path.Substring(2, path.Length - > 2).Split("\") > Dim hostname As System.Net.IPHostEntry = > System.Net.Dns.GetHostEntry(splits(0)) > Dim ips() As System.Net.IPAddress = hostname.AddressList > output = path.Remove(2, splits(0).Length) > Return output.Insert(2, ips(0).ToString) > Else > Return path > End If > End Function -- Armin Unfortunately the readfunction isn't mine it's the MP4Read function from
libmp4v2.dll so I'm not sure why it only works with IP addresses and not host names. Your right I should really do some error checking because if GetHostEntry fails to resolve the host name it throws an exception. Thanks Robert Show quoteHide quote "Armin Zingler" <az.nospam@freenet.de> wrote in message news:uZtkqrVALHA.1448@TK2MSFTNGP06.phx.gbl... > Am 31.05.2010 18:18, schrieb Roidy: >> This is what I knocked together to check the path to see if it's network >> path and then replace the device name with it's IP address. Seems to >> work, >> can you see any problems I might face using this? or is there a better >> way? > > If it works fine for you, it's ok. :-) Though I wonder why your > "ReadFunction" > works with the IP but not with the host name, while resolving the host > name > before using GetHostEntry seems to work. What does 'ReadFunction" do with > the string? Apart from this: > > - A possible problem is that the host name can not be resolved. I can't > test > the situation because my provider seems to redirect all unknown host names > to > the same IP. > - always enable Option Strict > - make the function Shared > > >> Public Function PathFixer(ByVal path As String) As String >> If path.StartsWith("\\") Then ' Check to see if it's a network >> path >> Dim output As String >> Dim splits() As String = path.Substring(2, path.Length - >> 2).Split("\") >> Dim hostname As System.Net.IPHostEntry = >> System.Net.Dns.GetHostEntry(splits(0)) >> Dim ips() As System.Net.IPAddress = hostname.AddressList >> output = path.Remove(2, splits(0).Length) >> Return output.Insert(2, ips(0).ToString) >> Else >> Return path >> End If >> End Function > > -- > Armin > Am 31.05.2010 17:55, schrieb Roidy:
> Thanks Armin, Yes, sorry, you're right. Didn't try it and didn't see the warning.> > VB complains that GetHostByName is obsolete and tells you to use > GetHostEntry, which works perfectly:- > > Dim hostname As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry("NAS") > Dim ipaddress() As System.Net.IPAddress = hostname.AddressList > > Now it just an easy task to write a function to strip out the network device > name from the path and replace it with the resulting IP address. -- Armin
How do I copy file from resources to C:\Notes?
make a dll Disable a Textbox default context menu Print from console application DataGridView values. How to use Serial Port Component bindingSource.Position = ... doesn't change the current property. need help looping through string of names connect bindingSource to text object. priority queue |
|||||||||||||||||||||||