Projekt „binichmitdeminternetverbunden.de“

Im Kern handelt es sich um viel Spaß. Das Projekt hat keine Agenda außer mich glücklich zu machen.

Das Projekt besteht in der Essenz aus vielen nationalen Domains, welche auf ein http/https Request mit einem einfach „Ja“, „Yes“, „Oui“, usw. antworten. Dabei wird keine extra Datei geschickt sondern einfach vom nginx Proxy ein String zurückgegeben. Die Domains sollen dazu dienen die Internet (und DNS) Verbindung zu prüfen ohne auf eine bestimmte Geschwindigkeit angewiesen zu sein.

HTTP wird nicht automatisch zu HTTPS weitergleiten, beide Protokolle funktionieren aber, wobei beim HTTPS noch das Zertifikat als Payload mitgeschickt wird, weswegen in diesem speziellen Fall das HTTP bevorzugt werden sollte.

Im nginx Proxy wird dafür folgender Location Block verwendet:

location / {
	default_type text/plain;
	return 200 "Ja\n";
}

Es existieren Domains für folgende Sprachen:

In Planung sind Domains für die Sprachen:

  • Deutsch
    • binichmitdeminternetverbunden.at
    • binichmitdeminternetverbunden.ch
  • Französisch
    • suisjeconnecteainternet.ch
    • suisjeconnectéàinternet.ch
    • suisjeconnectealinternet.fr (Ich glaube ich habe den Artikel "l" vergessen.)
    • suisjeconnectéàlinternet.fr
    • suisjeconnectealinternet.ch
    • suisjeconnectéàlinternet.ch
  • Englisch
    • amiconnectedtotheinternet.com (bereits vergeben)
    • amiconnectedtotheinternet.uk
    • amiconnectedtotheinternet.us
    • amiconnectedtotheinternet.org

Zukunftspläne:

In Planung ist ein E-Mail Service welche jeweils equivalent zu der Website ein „Ja“ in der jeweiligen Sprache als automatisches Reply zurückschickt. Der E-Mail Service wird keine E-Mails speichern. Der Lokalteil der E-Mail ist dabei egal, als Absender wird „info“ in der jeweiligen Sprache verwendet. Im Betreff steht die Frage „Bist du mit dem Internet verbunden?“, der Absendername ist „"Bin ich mit dem Internet verbunden"-Service“ in der jeweiligen Sprache.

Für die jeweiligen Sprachen sehen die Antworten wie folgt aus:

  • Deutsch
    • Absender: info@binichmitdeminternetverbunden.de ("Bin ich mit dem Internet verbunden"-Service)
    • Betreff: Bist du mit dem Internet verbunden?
    • Inhalt: Ja
  • Englisch
    • Absender: info@amiconnectedtotheinternet.net ("Am I Connected to the Internet?"-Service)
    • Betreff: Are you connected to the internet?
    • Inhalt: Yes
  • Französisch
    • Absender: info@suisjeconnecteainternet.fr ("Suis-je connecté à Internet"-Service)
    • Betreff: Es-tu connecté à Internet ?
    • Inhalt: Oui

HTTP-Statuscodes

Auch in Planung ist eine genereller Check für alle HTTP-Statuscodes. Man könnte zum Beispiel „binichmitdeminternetverbunden.de/203“ aufrufen und würde ein 203 Response erhalten. Das gleiche für alle weiteren Statuscodes.

Folgende Codes können aufgerufen werden (alle Texte sind auf Deutsch):

  • „/“, „/200“
    • Response-Status: 200
    • Response-Body: „Ja“
  • „/204“
    • Response-Status: 204
  • „/302“, „/302?ziel=domain.org“
    • Response-Status: 302
    • Response-Body: „Location: https://domain.org“
      • Alternativ steht im Response Body die Location welche als Query-Parameter angegeben wurde.
  • „/404“ (und halt alle die nicht existieren)
    • Response-Status: 404
  • „/418“, „/kaffee-kochen“, „/tee“, „/teekanne“
    • Response-Status: 418
  • „/hilfe“
    • Response-Status: 200
    • Response-Body: (Erklärung der Endpoints als utf-8 „text/plain“)

Nginx Location-Blöcke:

location ~ ^/(200)?$ {
    default_type text/plain;
    return 200 "Ja";
}

location /204 {
    return 204;
}

location ~ ^/302 {
    if ($arg_ziel) {
        return 302 $arg_ziel;
    }
    return 302 $scheme://example.org;
}

location ~ ^/(418|kaffee-kochen|tee|teekanne)$ {
    return 418;
}

location /hilfe {
    charset utf-8;
    default_type text/plain;
    return 200 "Verfügbare Endpunkte:\n/ → 200 OK (Ja)\n/200 → 200 OK (Ja)\n/204 → 204 Kein Inhalt\n/302 → 302 Weiterleitung (Location: https://example.org)\n/302?ziel=... → 302 Weiterleitung (Location: <ziel>)\n/404 → 404 Nicht gefunden\n/418 → 418 Ich bin eine Teekanne (Aliase: /tee, /teekanne, /kaffee-kochen)";
}