Solved

How to get external IP address

Posted on 2004-03-25
19
9,605 Views
Last Modified: 2013-11-13
Howdy, I have a router on my home network that I am playing with.  I've written some code where I can get all the info on it except the external ip address.  The internal ip is 197.168.0.1 and the inner network is consecutive.  I can get all ip addresses of each connected device, and so now the last thing I want to be able to get is the external ip of my router.  Anyone know how?  I am using VB 6.0

Thank you experts!  
0
Comment
Question by:groone
  • 6
  • 5
  • 4
  • +2
19 Comments
 
LVL 18

Expert Comment

by:bobbit31
ID: 10680338
From: http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_11813439.html

Comment from aRTie11
Date: 11/10/2000 07:47PM CST
 Comment  


an easy way to make your internet ip appear and not your lan Ip

is to use winsock like so

winsock1.connect "www.microsoft.com",80
InternetIP = winsock1.localip

calling it to access the internet will show the real ip address and not just the lan address

Hope it helps

aRTie11
0
 
LVL 28

Expert Comment

by:vinnyd79
ID: 10680404
0
 
LVL 9

Expert Comment

by:LinuxNubb
ID: 10680407
Shell out a ping command and retreive the answers.  The first hop on your list will be the external IP address.
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 5

Accepted Solution

by:
g0rath earned 500 total points
ID: 10680430
create a form

add a label, command box, and the Microsoft Internet Transfer Control 6.0

Then add this code

Option Explicit

Private Sub Command1_Click()
    Dim Data As String
    Data = Inet1.OpenURL("http://www.showmyip.com/simple/")
    If Not Inet1.StillExecuting Then
        Label1.Caption = Left(Data, InStr(Data, " ") - 1)
    End If
End Sub
0
 
LVL 28

Expert Comment

by:vinnyd79
ID: 10680438
The first hop on a ping command? Do you mean tracert?
0
 
LVL 18

Expert Comment

by:bobbit31
ID: 10680460
yeah, i think he means tracert:

http://vbnet.mvps.org/index.html?code/internet/tracerthost.htm

your external ip will be the second hop (usually) depending on your network setup
0
 
LVL 9

Expert Comment

by:LinuxNubb
ID: 10680578
Sorry bout that!  yes I meant a tracert.  If this is a standard hom setup, it will generally be the first hop.  If this is at work, especially a large building, that it would not be your next hop.
0
 
LVL 18

Expert Comment

by:bobbit31
ID: 10680635
slight correction:

if it was a standard home setup (e.g., computer to router), it would be the second hop
0
 
LVL 28

Expert Comment

by:vinnyd79
ID: 10680683
I block icmp packets on my firewall so tracert would not work for me.
0
 
LVL 18

Expert Comment

by:bobbit31
ID: 10680752
an extremely kludgy way to do it would be to open www.whatismyip.com and parse the results
0
 
LVL 3

Author Comment

by:groone
ID: 10680962
Here is what I did.  Using g0raths idea, I created a file myIP.shtml and added this one line of code
<!--#echo var="REMOTE_ADDR" -->


This showed my external ip address.  Made sure it was the only line in the file and as such I was able to place the ip address into a text field and save it as a file.  Problem solved.
0
 
LVL 9

Expert Comment

by:LinuxNubb
ID: 10680964
Why would it be the second hop?  If it is hooked to say a Linksys, the first hop is the outside of the router.  It doesn't hop to the inside, then the outside.
0
 
LVL 9

Expert Comment

by:LinuxNubb
ID: 10680970
Vinny, do you block ICMP going out as well as coming in?
0
 
LVL 28

Expert Comment

by:vinnyd79
ID: 10680996
Yes.
0
 
LVL 5

Expert Comment

by:g0rath
ID: 10681020
ah yes, that is a much better way of doing it...but you never know...not everyone has a website laying around they can just put up their own simple IP html page :)
0
 
LVL 18

Expert Comment

by:bobbit31
ID: 10681088
the first hop is from your local machine (your computers network address), the second one is the router
0
 
LVL 9

Expert Comment

by:LinuxNubb
ID: 10681130
That doesn't show up in my tracert.  My hop 1 is my router. (windows xp)
0
 
LVL 18

Expert Comment

by:bobbit31
ID: 10681137
hrmm... weird, on mine (also xp and also on my linux box) the first one is my local ip:

0
 
LVL 5

Expert Comment

by:g0rath
ID: 10681280
isn't that correct?

a "hop" is the packet that goes from machine 1 to machine 2

So by definition shouldn't hop 1 be

local machine -> NAT reverse proxy --- for most users? as in those that use things like the linksys home firewall/NAT thingy...

my other setup using a linux box as a routher may be different since it reall isn't a "hop" between" the NICs
local machine -> local ip of linux dmz side -> external ip through the other NIC -> the wide open internet

or for networks I've been on are more like this....
local machine -> subnet router -> DMZ router -> Internet GateWay -> wherever....

either way it's not consistant or something not to be relied upon, so it's usually easier to connect to a "trusted" website that can give you back your IP using the environment var REMOTE_ADDR

0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question