My machine's local IP is 192.168.1.203 but Conveyor shows multiple IP addresses in the Remote URL IP addresses. What does it mean ?
How can a keyoti achieve this ?
How can a machine have more than one IP different from physical IPs ?
P.S.: I read here that Conveyor uses reverse proxy, but didn't get this.
If you open CMD and run
ipconfig
you will see a list of those IP addresses and the network adapters that they belong to.
It's not uncommon to have multiple internal IP addresses like that, and you will probably see that some belong to virtual adapters such as those for VM Ware or Virtual Box for example.
Conveyor actually listens on any IP, and the IP you see in the Remote URL is just one it picked from the available list that should be accessible from other devices on your network. Sometimes it is wrong and the IP won't work from another device, which is why you see that drop down, so you can manually select the correct one.
Hope that answers your question.
Related
I want to connect two computers with an Ethernet cable without the user having to set up a LAN through the Control Panel and then transfer data between two instances of my app - one running on each computer.
As soon as I have a connection with an IP address for each computer, I know I can easily transfer a file by using Sockets, Pipes(?), WCF... But both computers are also connected via wifi to a router, so how can I somehow tell the computer that for a specific IP address - please use the cable? (I might be getting all of this wrong. Please feel free to correct me.)
I can use a UWP app or a .net (Winform/WPF) app. Either technology is fine. But this must be done in code, not by the users setting up a LAN through the Control Panel. Also, IPv6 is fine too.
Each network card has its own IP address, so both of the computers will have IP address for the WIFI network and another IP address for the ad-hoc link.
The addresses for the ad-hoc link can be set to an address in one IP segment, for example, 10.0.0.1 and 10.0.0.2, if the WIFI addresses are in the range of 192.168.X.X.
Your OS will know which card is related to each IP segment.
Start with System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces().
Filter out the Type=EtherNet interfaces and make sure they're Up. You may also have to watch out for virtual adapters etc.
From the selected adapter you can get Address Information etc. The IPV4 address should probably be enough to get you started.
I need to connect two machines via cable and do some work with these once they are connected. Are there any .Net classes which would let me detect two machines connected via cable (when I say cable I do not mean computers on same network but machines which are physically connected)?
I did come across some links on stackoverflow but none seem to have been answered.
Hence any links to previous relevant posts are welcome.
There isn't a .NET class that will just give you this but there are probably some techniques you could use, to varying degrees of success:
If you have access to both machines as part of your process, set a pre-defined static IP address on each device, then if you make sure that only the Ethernet port is active on both devices just wait until you can ping your predefined static IP address and you know they're connected.
Something like https://stackoverflow.com/a/12659133/1742551, running packet sniffing code on one machine to detect when activity is happening on the other end of the cable... not sure how you'd then tell what the IP address of the other machine is though and I guess you'd need this in order to do the work you describe.
You could use the TcpListener class to listen for connections on a specific port number, then from the other machine scan all other available IPs on the same subnet as itself for a device which is listening on this port (assuming that you can ensure both machines are on the same subnet). Assuming this connection is the only connection available, and both devices have no static ip address set, Windows will autoconfigure the IP address due to the lack of DHCP server then they'll both be assigned 169.254.x.y ip addresses as part of the 255.255.0.0 subnet, so this should work.
Probably some other option that I haven't thought of yet, but you get the point...
In a website I need to store visitor's IP address for security logging. I m not sure about IP address and its details just have an idea there are different types of IP addresses like user, internet provider, LAN IP, WAN IP etc.
I am even not sure which IP address I should store in database for security I have searched and came to know about Request.UserHostAddress that it returns The IP address of the remote client.
Can you please guide and confirm if I am sotring correct IP and using correct code to retrive IP ?
Edit
I am not certain why IP address is stored but know just as a good practice to do it. My guess is IP need to be stored to identify user, just in case if something wrong happens, with stored IP address it can be traced out who did it or from what area this request came.
Is there some other use of IP, please direct me as well.
Cheers
IP stands for Internet Protocol, which is the protocol underlying HTTP, which is what clients use to connect to web servers. Every machine on an IP network has a unique IP address.
UserHostAddress is the correct property for identifying the client's IP address. It does not matter whether the client is coming from the LAN or WAN, nor does it matter who their internet provider is. Internet providers (and I'm simplifying here) help route traffic to your website, but don't actually participate as an endpoint; the ISP's servers will not show up in the UserHostAddress, only the actual client who initiates the connection, which is typically the user.
Note that I say typically. IP addresses can be spoofed, or they can be hidden behind a proxy (like TunnelBear) or other obfuscation system (like Tor). There's no way to guarantee that you have the "real" IP address of the "real" user, but the aforementioned property is the closest you're going to be able to get.
I need to assign a unique IP address (local) for a device we will be connecting into our system via. USB. The actually assigning I will do over RS232 (don't ask!) by telling the device what it's IP is.
I would like to somehow find a usable address relative to the local PC in order to tell the device which to use. Is there a way of enumerating or finding a usable address in C#? I don't want to simply use a fixed one in case of possible clashes with other devices.
I've done a search here and there's lots of people wanting to find the current IP, or the IP of an already existing device, but I can't find much about generating a usable, unique one.
Thanks for any assistance you can give me.
Assigning static IP addresses (even if you ping them) is a bad idea.
What happens if the IP address you've assigned is to a device that happens to be offline right now?
Use DHCP if you can, and consider prompting the user if you can not retrieve an IP address from DHCP as to what it should be assigned to.
I am not ware of a native C# library for DHCP client's, but using pinvoke will get you what you're after. Example code (not tested) here, http://www.ianatkinson.net/computing/dhcpcsharp.htm
From http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
The Dynamic Host Configuration Protocol (DHCP) is a network
configuration protocol for hosts on Internet Protocol (IP) networks.
Computers that are connected to IP networks must be configured before
they can communicate with other hosts. The most essential information
needed is an IP address, and a default route and routing prefix. DHCP
eliminates the manual task by a network administrator. It also
provides a central database of devices that are connected to the
network and eliminates duplicate resource assignments. In addition to
IP addresses, DHCP also provides other configuration information,
particularly the IP addresses of local Domain Name Server (DNS),
network boot servers, or other service hosts. DHCP is used for IPv4 as
well as IPv6. While both versions serve much the same purpose, the
details of the protocol for IPv4 and IPv6 are sufficiently different
that they may be considered separate protocols.[1] Hosts that do not
use DHCP for address configuration may still use it to obtain other
configuration information. Alternatively, IPv6 hosts may use stateless
address autoconfiguration. IPv4 hosts may use link-local addressing to
achieve limited local connectivity.
Ok, not really sophisticated or anything, but why don't you just try to ping the ips, starting by the lowest, and pick the first one which doesn't respond?
Is it true that, if I want to make an IP spoofing program, I need only a program that can change my machine IP address?
If true how can I use System.Net - IPAddress Class to set the ip address?
No, it is not true. Changing your machine's IP address is not IP spoofing. IP spoofing is when you create network packets that have a source IP address that does not match the actual IP address of the source machine.
http://en.wikipedia.org/wiki/IP_address_spoofing
This could be achieved using RAW sockets or WinPCap using SharpPCap to interop to WinPCap
http://www.tamirgal.com/blog/page/SharpPcap.aspx
Your machine IP address is simply the IP address given to your machine to be used internally by devices within your home network. This is how routers, switches and other client devices can deliver and exchange packets.
You cannot spoof your external-facing IP in this manner. Using proxies will make the proxy's IP appear to be your external-facing IP.
I do not suggest changing your internal IP unless you know what you are doing and actually have a need for it to be static. For example, I forward ports on my router so I can run services. The router knows to point that traffic directly to my internal IP. Because DHCP can change your IP (due to lease expiration and what not), it's best that I make my internal IP static.
Also, depending on your network configuration, your internal IP has a certain format, like 192.168.1.X.
The best way to http://www.change-ip-proxy.com>change your ip address is through a proxy. In my search for a proxy, I found that having a reliable company behind the proxy is very important. Everything you do is sent through the company’s proxy, so you want to be sure that you can trust them to not read or steal your personal information. Or else there's no point in having a proxy.