===== A Simple Public IP Address API ===== [[https://seeip.org/|Originalartikel]] [[https://www.qgelm.de/wb2html/wb240.html|Backup]]

Some common usage patterns from a variety of programming languages are outlined below.

Bash

#!/bin/bash
ip=$(curl -s https://ip.seeip.org)
echo "My public IP address is: $ip"

Python

# This example requires the requests library be installed.  You can learn more
# about the Requests library here: http://docs.python-requests.org/en/latest/
from requests import get
ip = get('https://ip.seeip.org').text
print('My public IP address is: {}'.format(ip))

Ruby

require "net/http"
ip = Net::HTTP.get(URI("https://ip.seeip.org"))
puts "My public IP Address is: " + ip

PHP

<?php
    $ip = file_get_contents('https://ip.seeip.org');
    echo "My public IP address is: " . $ip;
?>

Java

try (java.util.Scanner s = new java.util.Scanner(new java.net.URL("https://ip.seeip.org").openStream(), "UTF-8").useDelimiter("\\A")) {
    System.out.println("My current IP address is " + s.next());
} catch (java.io.IOException e) {
    e.printStackTrace();
}

Perl

use strict;
use warnings;
use LWP::UserAgent;
my $ua = new LWP::UserAgent();
my $ip = $ua->get('https://ip.seeip.org')->content;
print 'My public IP address is: '. $ip;

C#

var httpClient = new HttpClient();
var ip = await httpClient.GetStringAsync("https://ip.seeip.org");
Console.WriteLine($"My public IP address is: {ip}");

VB.NET

Dim httpClient As New System.Net.Http.HttpClient
Dim ip As String = Await httpClient.GetStringAsync("https://ip.seeip.org")
Console.WriteLine($"My public IP address is: {ip}")

NodeJS

var http = require('http');
http.get({'host': 'ip.seeip.org', 'port': 80, 'path': '/'}, function(resp) {
  resp.on('data', function(ip) {
    console.log("My public IP address is: " + ip);
  });
});

Go

package main
import (
        "io/ioutil"
        "net/http"
        "os"
)
func main() {
        res, _ := http.Get("https://ip.seeip.org")
        ip, _ := ioutil.ReadAll(res.Body)
        os.Stdout.Write(ip)
}

Racket

(require net/url)
(define ip (port->string (get-pure-port (string->url "https://ip.seeip.org"))))
(printf "My public IP address is: ~a" ip)

Scala

val addr = scala.io.Source.fromURL("https://ip.seeip.org").mkString
println(s"My public IP address is: $addr")

Javascript

<script type="application/javascript">
  function getIP(json) {
    document.write("My public IP address is: ", json.ip);
  }
</script>
<script type="application/javascript" src="https://ip.seeip.org?format=jsonp&callback=getIP"></script>

jQuery

<script type="application/javascript">
  $(function() {
    $.getJSON("https://ip.seeip.org?format=jsonp&callback=?",
      function(json) {
        document.write("My public IP address is: ", json.ip);
      }
    );
  });
</script>

C#

using System;
using System.Net;
namespace seeip.Examples {
    class Program {
        public static void Main (string[] args) {
            WebClient webClient = new WebClient();
            string publicIp = webClient.DownloadString("https://ip.seeip.org");
            Console.WriteLine("My public IP Address is: {0}", publicIp);
        }
    }
}

nim

import HttpClient
var ip = newHttpClient().getContent("https://ip.seeip.org")
echo("My public IP address is: ", ip)

PowerShell

$ip = Invoke-RestMethod -Uri 'https://ip.seeip.org?format=json'
"My public IP address is: $($ip.ip)"

Lua

http.Fetch("https://ip.seeip.org", function(body) print("My ip is: " .. body ) end

PureBasic

InitNetwork()
*Buffer = ReceiveHTTPMemory("https://ip.seeip.org?format=json")
If *Buffer
  ParseJSON(0, PeekS(*Buffer, MemorySize(*Buffer), #PB_UTF8))
  FreeMemory(*Buffer)
  Debug GetJSONString(GetJSONMember(JSONValue(0), "ip"))
EndIf

LiveCode

put "My public IP address is" && url "https://ip.seeip.org"

LiveCode

put "My public IP address is" && url "https://ip.seeip.org"

Arduino

if (client.connect("ip.seeip.org", 80)) {
    Serial.println("connected");
    client.println("GET / HTTP/1.0");
    client.println("Host: ip.seeip.org");
    client.println();
} else {
    Serial.println("connection failed");
}