[Lazarus] How to find out the public IP in code?
fecske95 at gmail.com
Sat Nov 7 16:12:26 CET 2015
On Sat, Nov 7, 2015 at 1:07 PM, Mark Morgan Lloyd
<markMLl.lazarus at telemetry.co.uk> wrote:
> Bo Berglund wrote:
>> I would like to be able to find out the public IP address of the Pi in
>> a Lazarus program.
>> How can this be accomplished?
>> It is either connected to a wired or WiFi network router.
>> in my browser I can go to http://checkip.dyndns.com/ and it will print
>> a message with my IP address.
>> But how is this done in code?
> Avoid relying on this in the general case: you can usually use 0.0.0.0 to
> represent "this host". The problem is that a machine might have multiple
> physical Ethernet (or other) adapters, and in addition might have aliases
> set up, and in the general case it's not easy to look at the list of IP
> addresses and determine which one you want.
> http://forum.lazarus.freepascal.org/index.php?topic=20556.0 looks like a
> good starting point, although it's oriented towards Windows. If you're
> really looking for "/the/" address then I think you might end up parsing the
> routing table (left as an exercise :-) and finding which local IP address
> talks to the default gateway... which itself gets messy since there might be
> multiple prioritised gateways. And then there's IP6 to consider.
> Word of advise: don't try arithmetic operations on IP addresses, and in
> particular don't speculate on "next hops" etc. based on what you know about
> your local network.
> Mark Morgan Lloyd
> markMLl .AT. telemetry.co .DOT. uk
> [Opinions above are the author's, not those of his employers or colleagues]
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
More information about the Lazarus