Bypassing changing IP issues.

Started by
5 comments, last by TheShau 17 years, 11 months ago
Hello, I'm not sure if this is the right place to ask but maybe someone here can at least give me a lead. I was wondering if there is anyway to reconnect to a computer who I was connected to at some point in the past but now has a different IP after disconnecting and reconnecting to the internet. I was thinking that given that I was once connected to a host and during that session I asked it for It's MAC address. Then By the IP I could figure out who is it's RIR and ISP and then maybe in some way query the ISP for the current IP of the MAC address that I saved from the last connection. Is this possible? Can I connect to an ISP and query data from it's MAC-IP table, or is that considered classified information? T.D.
Advertisement
Your ISP will not typically know the MAC of your machine at all; at best, it will know the MAC of the DSL modem or firewall you used, but typically, it won't even know that.

An ISP that collects a list of visible MAC addresses will typically not give that list to you. It's not "classified" information (which is a very specific government-sponsored kind of information protection), but they'll typically call it "trade secret" or "company confidential."

However, the fine people that designed the internet came up with a solution for the problem you're trying to solve, a long time ago. It's called "DNS" -- it lets you register a mapping between a specific textual name (say, mygame.myserver.com) and an IP address (say, 1.2.3.4). Whenever that mapping changes, you can just update the DNS record, and people doing a look-up on the name will get the new address.

Another option is for computers to register themselves in some kind of lobbying or matchmaking service.

If you're trying to find some computer that does not register itself in DNS or a lobby, then that computer does not want to be found.
enum Bool { True, False, FileNotFound };
You might want to read up on the OSI Model, if will help explain some of this but I will give you a quick explination.

MAC Address are layer 2, Data Link Layer. This layer is for rapid communication between systems on the same "network". This is done by hubs and switches. As I am sure you know hubs are just dumb repeaters that send everything to every port. Switches use MAC Address to send the packets to the correct port. So the Switch care about your MAC adress.

Routers are for communcation between "networks". The route the packets and also do some protocal conversions. Routers work on Layer 3 (Network Layer, IP protocal) and Layer 4 (Transport Layer, TCP protacal). They use your IP address to send information back and forth. They don't care at all about your MAC Address because they can't use it for anything. So routers do not really carry MAC Address, so there would be no way for you to get this information. Even if you get it directly from the other machine, you can't use it for anything because routers are not MAC aware.

So where does this leave you, well you can't do what you want the way you were thinking but there is a way to do what you want, well sort of. When each machine in the group connects to the internet, they log on to your server and pass thier information to it. When each person logs on they recieve all the other other "users" that are logged on and thier information. You can then do a "direct" connection between the two computers. Should not be too hard to impliment.

theTroll
Thank you for your replies,

I'm very much aware of DNS and OSI. I was reading about IANA and RIRs and how a certain computer gets an IP and it mentioned ISPs using a MAC to IP table. But if you say thats only one way an ISP could work then I tend to believe you. Thinking it over I would hardly expect every ISP to work exactly the same.

DNSs are out of the question because this is a "layer 8" problam. Meaning the end user for the application is too dumb to purchase and manage a domain name. And probably wouldnt want to if he could.
So unless there's a free, reliable, dynamic DNS service out there that I've overlooked this cant be done.

As for a "meet-up" server, This is exactly what I'm trying to avoid doing. Perhaps as a last resort I will design the application to connect to a server just once everytime it is run to get it started but this is not the ideal solution for me.

Any further thoughts on the subject are very much appreciated. :)

T.D.
Unless each person has a static public IP address you can't do what you want to do. So you will need to come up with a method of getting each person's current IP address, the only way to do this is have them submit it somewhere.

theTroll
Quote:unless there's a free, reliable, dynamic DNS service out there that I've overlooked this cant be done


How about DynDNS? The guys who run it don't want a single account to register more than 5 handles, but if you talk to them, perhaps something can be worked out. Or perhaps you just make every user of yours create a new account on dyndns.org.

Btw: If what you're creating is something like an "anonymous peer to peer file sharing network" then I suggest that you join one of the larger existing projects rather than rolling your own. There are soo many problems you have to solve to actually make it reliable, scalable, and secure all at the same time -- and if you only get two of those, there's already a service out there that's well established and already does what you want.
enum Bool { True, False, FileNotFound };
I didn't find any project that tries to do exactly what I'm doing.
But it doesnt really matter. getting rid of the server isnt the core of my project which is not that special.
As far as I'm concerned that can only be done by completely redesigning the system from layer 3 up.
The catch of course is making it more worth while to the user so that the large cooperation and ISPs will be forced to implemenet it or loose their customers to startups.
Or alternativly make it more profitable for the large cooperations and ISPs so they'll want to implement it.
But I'm not the one that can or wants to start a revolution in the network.

As for DynDns it is not unlike other DNS suppliers I've come accross but if I'm going to use a server anyway, then I think it'll be better to just use mine.
Although in the end you could leave instructions to the user to create a dynamic dns and have the application update it. But again this isnt what my project is about and I'd rather not make things tough for the user.

Either way, Thanks for your help. Human response is so much easier then going through all of those articles and 500 page memos...

T.D.

[Edited by - TheShau on May 21, 2006 1:49:21 PM]

This topic is closed to new replies.

Advertisement