Wieder eine Domain geschnappt

Da ist es passiert, wieder eine Domain mehr im Portfolio. In der aktuellen Ausgabe von „IT-Business“ (Juni 2017, ISSN 1864-0907) mit dem Großthema „IT-SECURITY“ geht es hauptsächlich um Sicherheiten, Gefahren und Lösungen in der IT bezogen auf Unternehmen.

Beim Lesen der Ausgabe wurde ich auf einer Seite dann auf eine Anzeige von G-DATA aufmerksam. Zu sehen war unter anderem ein Browser-Fenster mit einer Fehlermeldung. Bei der Meldung handelt es sich um eine Nginx 500 Meldung „Internal Server Error“. Interessant jedoch war die Domain die aufgerufen wurde. Wie ich es ziemlich oft mache, habe ich sofort versucht die Domain aufzurufen. Dabei musste ich feststellen, dass diese tatsächlich noch nicht registriert war.

Selbstverständlich habe ich mir die Domain hättemanvorherwissenkönnen.de dann sofort registriert. Um den Hintergrund der Registrierung beizubehalten, habe ich dann einen ähnlichen Content wie in der Ausgabe erstellt. Ein Backlink auf meine eigene Website darf dann auch nicht fehlen.

Sinn und Zweck?

Ich bezweifle ob es tatsächlich einen realistischen Nutzen hat. Nichts desto trotz habe ich so bereits Anfragen bekommen. Auch sind die Besuche auf meinen Seiten gestiegen.

Ähnliches habe ich auch schon mit den Domains fahlsegler.de und zwergdommel.de gemacht. Ich bin sicher es wird die ein oder andere Seite noch folgen.

 

Ping: Zeitüberschreitung der Anforderung und Zielhost nicht erreichbar

Haben wir vermutlich alle schon einmal ausgeführt. Ping. Doch was ist Ping? Ping ist das Netzwerk Troubleshooting Tool Nummer 1. Ping sendet ICMP Pakete an ein IP fähiges Gerät. Meist in der Hoffnung, dass dieses Gerät auch antwortet. Aber was bedeutet „Zeitüberschreitung der Anforderung“ und wie unterscheidet es sich mit „Zielhost nicht erreichbar“?

Ich pinge einen Rechner in meinem Netzwerksegment.

Ping Ok
Ping Ok

Der Rechner antwortet auf das 32 Bytes große Paket in 50-55 ms und der TTL Wert ist 62 (Anzahl der max. Hops). Alles Ok soweit, das Gerät ist erreichbar.

ZEITÜBERSCHREITUNG DER ANFORDERUNG

So, jetzt wird es interessant: Ein Computer mit der IP 192.168.1.4 ist offensichtlich im Netzwerk nicht erreichbar. Meine IP ist 192.168.1.54/24. Die zu testende IP ist 192.168.1.4/24. Das bedeutet, dass sich beide Geräte im gleichen Subnetz und in der gleichen Broadcast Domäne befinden.

Ping Zeitüberschreitung
Ping Zeitüberschreitung

Was kann man nun daraus schließen? Viele gehen jetzt davon aus, dass das Gerät nicht erreichbar ist, sprich „kaputt“, ausgeschalten oder nicht mehr im Netzwerk ist.

Zeitüberschreitung der Anforderung im lokalen Subnetz bedeutet, dass das Gerät keine ICMP Pakete in einer gewissen Zeitspanne sendet. Sonst nichts. Es kann mithilfe dieser Information auf nichts anderes geschlossen werden, als auf die Tatsache, dass das Gerät nicht auf einen Ping antwortet.

Ich erkenne mit arp -a, dass die MAC Adresse mithilfe ARP ermittelt wurde. Das heißt zwar nicht zwangsläufig, dass der Computer online ist (ARP Cache), aber ich habe vorher mit arp -d den ARP Cache geleert.

ARP
ARP

Meist lässt die Windows Firewall ICMP eingehend nicht zu, d.h. das Gerät ist funktionsfähig. Hier die Ansicht in wf.msc:

Firewall Einstellung
Firewall Einstellung

Beim Aktivieren der IPv4 Regeln antwortet das Gerät.

ZIELHOST NICHT ERREICHBAR

Ich bekomme als Antwort auf einen Ping an einen Computer im lokalen Subnetz die Information: Zielhost nicht erreichbar.

Ping Nicht erreichbar
Ping Nicht erreichbar

Was kann ich daraus schließen? Hier sieht die Sache anders aus. Meist ist der Computer nicht online und auch der ARP Cache zeigt keine MAC Adresse des Zielcomputers. Das bedeutet, dass auch der ARP Request fehlgeschlagen ist. Es kann in den meisten Fällen davon ausgegangen werden, dass der Computer tatsächlich offline ist.

Blog jetzt mit HTTPS/SSL-Zertifikat

Ab heute ist mein Blog unter https://blog.maxham.de/ erreichbar. Leider hat die Umstellung auf die verschlüsselte Datenübertragung nicht ganz reibungslos funktioniert. Zwischenzeitlich war der Blog mehrere Stunden nicht erreichbar. Doch das hat sich gelohnt. Denn jetzt ist die Webseite mit einem SSL-Zertifikat eingebunden.

Domainumzug

Mit dem Umzug auf einen anderen Server habe ich mich für die verschlüsselte Übertragung via HTTPS/TLS entschlossen. Da ich unter anderem DNS und Caching bereits über CloudFlare steuere, habe ich nun auch das SSL-Zertifikat von CLoudFlare eingebunden. Dies seht ihr je nach Browser z.B. an dem Schloss in der URL-Bar.

SSL-Zertifikat mit Chrome/Windows
Chrome/Windows
Warum ein SSL-Zertifikat?

Warum aber ein Blog via HTTPS? Naja das hat mehrere Gründe. Unteranderem wird der Schutz der Daten immer mehr gefordert. Nicht nur von den Verbrauchern. Per Gesetzt gilt z.B. bereits in verschiedenen Bereichen (wie Banken oder Onlineshops) eine Pflicht für SSL-Zertifikate. Dies weitet sich immer mehr aus und gilt teilweise auch schon für Kontaktformulare. Als Entwickler wollte ich das aber einfach auch mal an meiner eigenen Webseite probieren. Da ich jetzt auch die Probleme kenne, wir der Umzug meiner Hauptdomain wesentlich leichter fallen.

In einem späteren Beitrag werde ich noch von der Möglichkeit berichtet, wie man seine Webseiten mit dem Let’s Encrypt SSL-Zertifikat verschlüsseln kann. Denn dieser Anbieter hat es sich zum Ziel gesetzt, alle unverschlüsselten Seiten auf HTTPS umzustellen.

Laravel Mailables – Tutorial

Schnell und einfach E-Mails mit Laravel Mailables versenden

Die neue Möglichkeit mit Laravel E-Mails zu versenden

Nun ist es ist es endlich soweit. Laravel 5.3 ist seit Ende August veröffentlicht. Und damit einige neue und großartige Features. Eines der größten Änderungen ist eine neue Art und Weise, wie in Laravel E-Mails versendet werden können.

Hier übrigens eine Zusammenfassung von den größten Änderungen, die Taylor Otwell während der Laracon US schon präsentiert hat. In diesem Beitrag möchte ich mich aber auf Laravel 5.3 Mailables konzentrieren und zeige euch wie man damit den bisherigen Code verbessern kann.

Wie wir bisher E-Mails verschickt haben
Mail::send('layout.email.send', ['title' => $title, 'message' => $message], function ($message)
{
    $message->from('[email protected]', 'Tobias Maxham');
    $message->to('[email protected]');
});

Diese Methode hat zwar bisher gut funktioniert, doch nachdem einige E-Mails gesendet wurden, fängt die Code-Basis irgendwann an chaotisch zu werden. Das soll sich aber nun mit Laravel Mailables deutlich verbessern.

Einführung in Laravel Mailables

Mit Mailables in Laravel werden vorgefertigte Klassen erstellt, die später verschickt werden können. Grundsätzlich sind Mailables verantwortlich für die Datenzusammenstellung und diese dann an die Views weiterzugeben. Und mittlerweile ist die API für das Senden von E-Mails wirklich sehr einfach geworden.

Alles was wir nun machen müssen, um E-Mails in Laravel zu versenden ist folgendes:

Mail::to('[email protected]')->send(new DoryFound);

Wie man sehen kann, ist es deutlich einfacher geworden E-Mails zu verschicken. Trotzdem kann man mit der „alten“ API immer noch E-Mails verschicken. Das wird noch weiterhin unterstützt.

Erstellen einer Mailable-Klasse

Mit artisan, dem genialen Laravel Command-Line-Tool, können wir ganz einfach eine neue mailable-Klasse erstellen:

php artisan make:mail <NameDerMailableKlasse>

In meinem Beispiel habe ich die mailable Klasse DoryFound genannt („Findet Dorie“ kommt ende September im Kino).  Demnach müsste der Befehl wie folgt aussehen:

php artisan make:mail DoryFound

Nachdem wir nun die neue mailable Klasse erstellt haben (zu finden in app/mail) hat diese folgenden Aufbau:

<?php
 
namespace App\Mail;
 
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
 
class DoryFound extends Mailable
{
    use Queueable, SerializesModels;
 
    public function __construct()
    {
        //
    }
 
    public function build()
    {
        return $this->view('view.name');
    }
}

Wie man sehen kann, dient die build Methode zum Generieren der Nachricht. In unserem Fall ersetzte ich den Pfad mit email.dory-found. Als nächstes legen wir ein neues Template an. Dazu müssen wir unter ressources/views zunächst einen Ordner email anlegen, sollte dieser noch nicht vorhanden sein, und dort dann eine neue PHP-Datei unter dem Namen dory-found.blade.php.

Daten an die E-Mail View weitergeben

Alle public-Properties der mailable Kasse werden automatisch in der View zur Verfügung gestellt. Daten der View zu übergeben ist also genau so einfach wie die Daten in der mailable Klasse öffentlich zu machen. Sagen wir also, ich möchte den Ort übergeben, an dem ich Dorie gefunden habe, dann muss ich das nur in der Klasse so festhalten:

public $location = 'Ozean';

In der View können wir auf den Wert dann zugreifen, als wäre es eine normale Variable:

<h1>Ich habe es geschafft!</h1>
<p>Ich habe Dory im <strong>{{ $total }}</strong> gefunden.</p>

Zusätzlich könnte man die with-Methode verwenden:

public function build()
{
    return $this->view('emails.dory-found')
                ->with($key, $value);
}

Senden zusätzlicher Parameter

Hinzufügen von BCC, CC und dem ganzen Rest kann auf die $this in der build-Methode aufgerufen werden. Hier ein Beispiel dafür:

public function build()
{
 
    $address = '[email protected]';
    $name = 'TobyMaxham';
    $subject = 'Dorie Gefunden!';
 
    return $this->view('emails.dory-found')
                ->from($address, $name)
                ->cc($address, $name)
                ->bcc($address, $name)
                ->replyTo($address, $name)
                ->subject($subject)
                ->with($key, $value);
}

Fazit

Mit Laravel Mailable lassen sich wirklich schnell und einfach E-Mails versenden. Das Erstellen der Klassen ist genau so leicht wie das Versenden der E-Mails. Wer jedoch lieber die alte Funktionalität nutzen möchte, könnte dies weiterhin nutzen. Ich bin aber schon jetzt ein großer Fan von Laravel 5.3 und werde auch noch weitere Neuerungen wie Notifications oder oAuth beschreiben.

URL-Shortener mit neuer Funktion

Heute gibt es Neuigkeiten zum URL-Shortener der UX9 Group. Seit einiger Zeit ist es möglich, den URL Shorterne über verschiedene URLs aufzurufen. Bislang jedoch gab es keinen Unterschied zwischen den einzelnen Domains. Doch nun habe ich ein Feature freigeschalten, mit dem nun noch mehr kurze URL’s generiert werden können.

Bei der Generierung der kurzen URL’s, wird nun die Domain beachtet. Dies hat den Vorteil, dass ein viel höherer Pool an möglichen URL’s entsteht. Auf http://ux6.de/ ist die Chance auf eine vier-stellige URL noch sehr hoch. Dies kann sich in den nächsten Wochen zwar ändern, doch ich werde immer wieder neue Domains aktivieren und bekannt geben.

Aktuelle URL’s

Seit dem Start von meinem URL-Shortener sind noch vier weitere Domains dazu gekommen. In Kürze werden auch noch weitere folgen. Mit der Premium-Version habt ihr auch jetzt schon Zugriff darauf.

Aktuell könnt ihr auf den folgenden Seiten URL’s generieren:

Sobald diese offiziell verfügbar sind, werde ich dazu nochmal einen Newsletter verfassen.

URL-Shortener
QR-Code