Name: geohoffman49431 Date: October 18, 2007 at 14:58:37 Pacific Subject: Server to Private IP message OS: XP PRO CPU/Ram: 512 DDR 2700 Model/Manufacturer: Generic
Comment:
If you can answer any of these questions even a partial answer would be most appreciated.
Scenario: I have a server which I have complete control of and physical access. I need a way to send messages from the server to a computer with a private ip address over the internet. I dont know much about this but it seems like it must be possible. I also have complete control on the client side to open ports when needed.
I've looked into PPP, VPN, Tunneling and others but cant seem to find the answer. Any ideas?
It seems like the server should be able to send a packet to the ISP of the client and the ISP should be able to forward it to the correct end point. I imagine that this is basically what an http request is like (although I know a tcp socket is opened). I dont know how ISPs usually treat this sort of thing (ie would they only forward packets from the server if they have not gotten a request from the client within their network).
Another question I have is assuming I have some way to send messages from the server to the client can I store the address or route the response should take? I want to be able to send messages to the client without maintaining a connection through a socket. I would like to be able to store the addresses of more than 65,000 clients so keeping open connections to all the clients (which would require 1 port for each client) is not an option. So I would like to store the address(s) the packet would have to go through.
I know most ISPs assign dynamic IP addresses when a client connects to the internet. Do these usually remain static until the user disconnects (like they unplug their router)? Do they ever change while the client is logged on?
You cant do it without the co-operation of the client. If the client has a private IP address then it means they are behind a router. They need to configure their router to accept incoming requests via port forwarding to the computer concerned and then have some server software on the computer to handle it. You cannot send anything directly to a private address, you can only do that within a Local Area Network. It has to go to a public address and the clients router decides what to do with it.
The ISP knows nothing and cares less of any private IP addresses the client may or may not have.
Imagine the fun that hackers would have if what you are trying to do were possible.
As far as dynamic IP addresses are concerned, different ISP have different policies. Some renew the IP address ever 24 hours as a matter of routine. Some will keep the same IP address as long as the client is connected. Mine renews the IP address every 14 days. To do so they first disconnect the client and if the client has their router/modem configured correctly, it should reconnect automatically with the new IP address.
As I said in my post I have complete physical control over both the server and the client (unless by client you mean the ISP and private network the client is on). So I can make the client wait for incoming messages on a port if I need to.
It seems like there must be some way to send something to a client behind a router with a private IP address. After all when you do an HTTP request the server has to send the response somewhere.
"The ISP knows nothing and cares less of any private IP addresses the client may or may not have." How does the ISP then get http responses back to the client. The server serving the web page cant send it to the private IP address. It has to send it to the public IP address of the ISP then the ISP has to know where to send it. Correct?
This is for a web service style application. When the client starts the application it could notify the server of its address so the server can send messages to it. Sort of like creating a socket between the client and server except it is not a maintained connection. So when the server wanted to send a message to the client it would create a new socket and send the message. There has to be some way to create a packet and have it sent to the right location on a private network ... after all this is done billions of times a day is it not?
I guess if all else fails I will just use sockets - I'm pretty sure that is possible.
Good to know about ISPs changing its customers IPs every so often. I guess I could write a program to let the server know when the clients IP changes or something assuming its not a waste of time (ie the rest is possible).
>> How does the ISP then get http responses back to the client. The server serving the web page cant send it to the private IP address. It has to send it to the public IP address of the ISP then the ISP has to know where to send it. <<
It doesn't go to the ISP IP address, it goes to the pupblic IP address of the client making the request. The ISP dosents have an IP address other than the gateway address.
>> There has to be some way to create a packet and have it sent to the right location on a private network ... after all this is done billions of times a day is it not? <<
No it isn't. You cannot use private addresses over the Internet, routers wil just reject them. The final step from the public IP to the private IP is done within the router. Forget about private IP addresses. They are just that private and are of no use to anyone not on the same Local Area Netwrok.
As Stuart pointed out, Private IP's are non-routable over the internet. Ergo the term "private".
You could connect to the client using RDC or alternatively, you could use chat software like msn.
Other than that, unless all these clients are part of an Active Directory integrated domain you won't be able to message them. If they are all part of an AD domain, then you could use the net command to send messages.
Thank you for your reply also Curt though I was not confused as to what the term private IP means. I know that you can not send a message directly to a computer with a private IP address but I thought that there must be a way to have it forwarded.
When I type ipconfig/all it tells me my ip is 10.200.18.95 and my routers ip address is 10.200.18.1 both of which are private IP addresses and not publicly routable. So when you say "It doesn't go to the ISP IP address, it goes to the pupblic IP address of the client making the request" Im unclear as to what you mean. Do I have a public ip address? I thought my "public" ip address was my isp's gateway. Does my cable modem in the same physical room as my computer have a public ip address somehow? If it does that would clear up a lot of confusion.
>> I thought my "public" ip address was my isp's gateway. <<
It isn't. The gateway address is the way you communicate with your ISP via yourpublic IP address.
Go to http://whatismyip.com. That will tell you what you public IP address is. Your routers configuration should also give you this information along with your ISPs gateway address. The router converts incoming messages on the public IP address to the private IP address via Network Address Translation, a fundamental function of a home router.
>> Does my cable modem in the same physical room as my computer have a public ip address somehow? <<
It sure does. It's an address that is unique to you. The gateway address will be used by many clients of the same ISP. The gateway address is the address of the first router that your data goes through of many routers that it will encounter before it gets to its destination.
It's your gateway to the Internet and like any gateway, many people can go through it providing they have the right credentials. Your credentials are the user name and password given to you by your ISP along with your public IP address which belongs to your ISP and is leased to you via DHCP.
hell,would you please help me for my request and then you're entirelly thanked ... anyway i don't know how to set my computer sends e_mails to different programes of tv and some sites...(i would not mean by messenger and yahoo id)... your friend hamza from algeria... thank you a lot ..
The information on Computing.Net is the opinions of its users. Such
opinions may not be accurate and they are to be used at your own risk.
Computing.Net cannot verify the validity of the statements made on this site. Computing.Net and Computing.Net, LLC hereby disclaim all responsibility and liability for the content of Computing.Net and its accuracy.
PLEASE READ THE FULL DISCLAIMER AND LEGAL TERMS BY CLICKING HERE