Compare commits

...

6 Commits

Author SHA1 Message Date
b7d78e7561 do not add newline after plain IP output 2025-01-08 22:38:16 +01:00
d757e632d8 add CNAME output to standard list 2024-03-10 16:24:15 +01:00
1d759d2e44 change domain nandus.net -> snapdns.eu 2024-03-10 16:18:32 +01:00
Max Mehl
d8aba80029 make .git inaccessible via web 2023-06-14 13:39:19 +02:00
6109429b21 handle case if there is no hostname 2023-05-24 11:08:18 +02:00
9ec952236f add timeout for whois 2020-06-22 18:04:35 +02:00
4 changed files with 29 additions and 15 deletions

View File

@@ -8,3 +8,6 @@ RewriteRule ^([^/]+)/?$ /index.php?m=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?m=$1&t=$2 [L]
# Hide .git on webserver
RedirectMatch 404 /\.git

View File

@@ -4,18 +4,18 @@ A simple PHP script to tell a visitor's IP address and more information. This fi
## Plain return
Example: [/][https://ip.nandus.net]
Example: [/][https://ip.snapdns.eu]
When the script is properly installed, one can visit/curl/wget the website to just receive one's public IP address. This is very useful in combination with other scripts (check out my snap-dyndns packages for example).
```
max@laptop ~> wget -qO - ip.nandus.net
max@laptop ~> curl -Ls ip.snapdns.eu
91.62.68.1
```
## Detailed return
Example: [/myself](https://ip4.nandus.net/myself)
Example: [/detailed](https://ip4.snapdns.eu/detailed)
Given the location of the script is `ip.example.com`, you can also receive more information about the HTTP headers or the IP's reverse lookup:
@@ -27,7 +27,7 @@ HTTP_CLIENT_IP:
HTTP_X_FORWARDED:
HTTP_FORWARDED_FOR:
HTTP_FORWARDED:
HTTP_HOST: ip4.nandus.net
HTTP_HOST: ip4.snapdns.eu
HTTP_URI:
HOSTNAME: p5B3E4401.dip0.t-ipconnect.de
@@ -38,8 +38,8 @@ Additionally you will be given a whois output of your IP.
## Custom DNS and IP lookup
Example DNS: [/dns/example.com](https://ip.nandus.net/dns/example.com)
Example IP: [/ip/8.8.8.8](https://ip.nandus.net/ip/8.8.8.8)
* Example DNS: [/dns/example.com](https://ip.snapdns.eu/dns/example.com)
* Example IP: [/ip/8.8.8.8](https://ip.snapdns.eu/ip/8.8.8.8)
You can also freely look up any hostname or IP. For domains, this will return a useful list of different DNS records (A, AAAA, NS, MX, TXT, SOA etc).

View File

@@ -1,8 +1,8 @@
<?php
return (object) array(
'ip4domain' => 'ip4.nandus.net',
'ip6domain' => 'ip6.nandus.net',
'ip4domain' => 'ip4.snapdns.eu',
'ip6domain' => 'ip6.snapdns.eu',
'detailed_uri' => 'detailed',
);

View File

@@ -20,7 +20,7 @@ if(empty($_GET)) {
if($method === "simple") { // simple
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip . "\n";
echo $ip;
exit;
} elseif($method === "myself" ) { // detailed info about own IP
$ip = $_SERVER['REMOTE_ADDR'];
@@ -95,7 +95,7 @@ function show_whois($target) {
preg_match('/[a-zA-Z\d\-]+\.[a-zA-Z\d]+$/', $target, $m);
$target = $m[0];
}
$whois = shell_exec("whois " . $target );
$whois = shell_exec("timeout 5 whois " . $target );
echo "<pre>"; print_r($whois); echo "</pre>";
echo "<br />\n";
}
@@ -114,6 +114,12 @@ function show_dnsrecords($hostname) {
echo "<strong>" . $value['type'] . "</strong>: ";
echo link_target($value['ipv6']) . "<br />\n";
}
// CNAME
$dnsrecords = dnsrecords($hostname, "DNS_CNAME");
foreach($dnsrecords as $key=>$value) {
echo "<strong>" . $value['type'] . "</strong>: ";
echo link_target($value['target']) . "<br />\n";
}
// MX
$dnsrecords = dnsrecords($hostname, "DNS_MX");
foreach($dnsrecords as $key=>$value) {
@@ -145,7 +151,7 @@ function show_dnsrecords($hostname) {
echo "" . $value['rname'] . " (rname), ";
echo "" . $value['serial'] . " (serial)<br />\n";
}
// OTHER
$dnsrecords = dnsrecords($hostname, "OTHER");
if(!empty($dnsrecords)) {
@@ -178,8 +184,8 @@ function print_footer() {
// HELPER FUNCTIONS
function readheader($value) {
echo "<strong>" . $value . "</strong>: "; // show desired value
if(isset($_SERVER[$value])) { // only if desired header has been delivered
echo "<strong>" . $value . "</strong>: "; // show desired value
if(isset($_SERVER[$value])) { // only if desired header has been delivered
echo $_SERVER[$value];
}
echo "<br />\n";
@@ -189,12 +195,17 @@ function ip2hostname($ip) {
return $hostname;
}
function hostname2ip($hostname) {
$ip = implode(', ', gethostbynamel($hostname));
$ipsbyhostname = gethostbynamel($hostname);
if($ipsbyhostname === false) {
$ip = $hostname;
} else {
$ip = implode(', ', gethostbynamel($hostname));
}
return $ip;
}
function dnsrecords($hostname, $record = "DNS_ALL") {
if($record === "OTHER") {
$dnsrecords = dns_get_record($hostname, DNS_ALL - DNS_A - DNS_AAAA - DNS_MX - DNS_NS - DNS_TXT - DNS_SOA);
$dnsrecords = dns_get_record($hostname, DNS_ALL - DNS_A - DNS_AAAA - DNS_MX - DNS_CNAME - DNS_NS - DNS_TXT - DNS_SOA);
} else {
$dnsrecords = dns_get_record($hostname, constant($record));
}