Rookie
Rookie

Reputation: 4144

How to get my computer external IP address?

Lets say my IP currently is: 123.123.123.123

How can I get that string programmatically?

Note: I don't want to get this IP: 192.168.0.10, I want that IP which others can use to connect into my computer via HTTP or anything.

NOTE: I dont want to open some web-page such as ip4.me to get the address, I want to get it with just C++.

I tried to google but every suggestion was "load a page and read the IP it tells you". Is that really the only way?!

Upvotes: 3

Views: 4214

Answers (2)

sudononymous
sudononymous

Reputation: 46

My recommendation is to send a packet with the record route option.

If you know your upstream gateway, you should be able to find a ping command that allows you to set record route, and then either stores that data in an array or something you can regex.

Your WAN IP should be either record 0 or record 1, I believe.

What network library are you using?

Upvotes: 3

Ivor Prebeg
Ivor Prebeg

Reputation: 978

You can fetch it from http://api.externalip.net/ip/ or some similar services, but I'm not sure how reliable these sites are, in means of availability

Any other way would be extremely complicated, as in general, no network equipment has api to tell external IP, and even if it had, you can not tell is there a simple xDSL router in front of you or Cisco ASA nating outbound traffic

Upvotes: 4

Related Questions