austin316 Posted February 17, 2009 Report Share Posted February 17, 2009 Hi I am trying to implement a way in which I am able to know the IP of the host from my PC(both are connected directly to one another via ethernet). My host is transmitting periodically its info such as MAC n IP address. The destination port is 11000(I guess that this is the client(PC)). However, when I tried receiving data from my PC in this port using the UDP receiver example provided in LV 8.6, I don't get anything(It is blank all the time). Changing the time to -1 doesn't helps either. I am pretty sure that the host is using UDP to transmit its data because I am able to capture the datagrams in a program called Wireshark, Network protocol analyzer. Please help. I struck with this problem for a few days. Thank you. Quote Link to comment
Rolf Kalbermatter Posted February 17, 2009 Report Share Posted February 17, 2009 QUOTE (austin316 @ Feb 16 2009, 02:08 AM) HiI am trying to implement a way in which I am able to know the IP of the host from my PC(both are connected directly to one another via ethernet). My host is transmitting periodically its info such as MAC n IP address. The destination port is 11000(I guess that this is the client(PC)). However, when I tried receiving data from my PC in this port using the UDP receiver example provided in LV 8.6, I don't get anything(It is blank all the time). Changing the time to -1 doesn't helps either. I am pretty sure that the host is using UDP to transmit its data because I am able to capture the datagrams in a program called Wireshark, Network protocol analyzer. Please help. I struck with this problem for a few days. Thank you. If the host is using adressed UDP datagrams in contrast to broadcasts, only the adressee will receive the datagram. What destination address do you see in Wireshark? Note that Wireshark uses promiscious mode to receive any datagrams and TCP packets on the network interface. This is a mode that can not be used by a regular sockets as used by LabVIEW and just about any other network software but only by tapping directly into the card driver through a filter driver. In Wireshark they use the WinPcap driver for this. Rolf Kalbermatter Quote Link to comment
austin316 Posted February 17, 2009 Author Report Share Posted February 17, 2009 QUOTE (rolfk @ Feb 16 2009, 05:01 PM) If the host is using adressed UDP datagrams in contrast to broadcasts, only the adressee will receive the datagram. What destination address do you see in Wireshark?Note that Wireshark uses promiscious mode to receive any datagrams and TCP packets on the network interface. This is a mode that can not be used by a regular sockets as used by LabVIEW and just about any other network software but only by tapping directly into the card driver through a filter driver. In Wireshark they use the WinPcap driver for this. Rolf Kalbermatter Thanks for the reply. I manage to solve the said issue. I need to use UDP multicast open to solve the problem. Another issue, how do I programmatically set the computer IP(windows) using Labview. Thank you Quote Link to comment
Mark Yedinak Posted February 17, 2009 Report Share Posted February 17, 2009 You should be careful changing the IP address of your PC programmatically. Is you are not careful this can cause you lots of networking headaches. If you are on an isolated, controlled and self contained network you could do this. If you are running on a large network, such as your company's network, I recommend you contact your IT staff regarding your IP addressing needs. Network addresses are managed for a reason. The last thing you want to do is create duplicate addresses on a network. Quote Link to comment
austin316 Posted February 21, 2009 Author Report Share Posted February 21, 2009 QUOTE (Mark Yedinak @ Feb 17 2009, 12:31 AM) You should be careful changing the IP address of your PC programmatically. Is you are not careful this can cause you lots of networking headaches. If you are on an isolated, controlled and self contained network you could do this. If you are running on a large network, such as your company's network, I recommend you contact your IT staff regarding your IP addressing needs. Network addresses are managed for a reason. The last thing you want to do is create duplicate addresses on a network. I am only doing it in my personal pc. So there won't be any problems. I am trying to eliminate the process of manually setting the IP. Any help in setting the IP programmatically would be appreciated. thank you. Quote Link to comment
Mark Yedinak Posted February 21, 2009 Report Share Posted February 21, 2009 QUOTE (austin316 @ Feb 20 2009, 10:03 AM) I am only doing it in my personal pc. So there won't be any problems. I am trying to eliminate the process of manually setting the IP. Any help in setting the IP programmatically would be appreciated. thank you. I would look to see if there are some .NET or windsock dll calls that you can make. I am not aware of any way to do it using LabVIEW primitives. Quote Link to comment
Rolf Kalbermatter Posted February 21, 2009 Report Share Posted February 21, 2009 QUOTE (Mark Yedinak @ Feb 20 2009, 11:24 AM) I would look to see if there are some .NET or windsock dll calls that you can make. I am not aware of any way to do it using LabVIEW primitives. LabVIEW offers no such access for sure. You could try to use netsh command line tool available in 32 Bit Windows installations. something like this executed with System Exec should work: netsh interface ip set address "Local Area Connection" static <local address> <subnet> <gateway> 1 netsh interface ip set dns "Local Area Connection" static <dns server address> primary netsh interface ip delete dns "Local Area Connection" all netsh interface ip set address "Local Area Connection" dhcp netsh interface ip set dns "Local Area Connection" dhcp Local Area Connection is the name of your network interface as Visible in the Network Connections. Rolf Kalbermatter Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.