Jörg Reinholz: Das Skript zum Montag - Blocklist.de befragen

Beitrag lesen

Moin!

Für das Abfragen von IP-Adressen braucht man keinen API-Key. Steht dort direkt unter der ersten Tabelle.

Allerdings habe ich die Erfahrung gemacht, dass das nicht unbegrenzt oft klappt. Habe ich vergessen zu erwähnen.

Die Frage war, wieso du das in PHP machst und nicht in der PHP-Konfiguration?

Weil das benutzte Verzeichnis so konfiguriert ist, dass PHP die Fehler eben anzeigt.

Du hast nicht erkannt, dass das eigentlich zum Test gehört. Zum einen würde ich hier keine Ausnahme für Tests machen, zum anderen gehört der Code bereits nicht mehr zum Test, wie der Kommentar "Ende Test" der Zeile unmittelbar davor es belegt.

Offenbar hast Du eine Leseproblem. Du stößt auf etwas, was Du als Aussage deuten kannst und schaltest das Gehirn ab. Wenn Du den Code ansiehst, dann wird Dir klar, dass ich das komplette $_REQUEST['method'] nur "mit mir rumschleppe" um die 3 Methoden (PHP-nativ, hosts und nslookup) testen zu können, was einem im produktiven Einsatz ja wohl kaum einfallen wird. Will ich nicht testen, dann brauche ich $_REQUEST['method'] nicht.

Spätestens ab diesem Posting sollte auch klar sein, warum ich überhaupt getestet habe.

Als Maßstab für deinen Programm-Entwurf sollten kognitive Fähigkeiten des Menschen dienen.

Na wunderbar! Ich bin ein Mensch und komme mit Abbruchbedingung erfüllt? Exit! sehr gut klar.

Implikationen davon sind, dass Unit-Testing und Post-Processing nicht mehr möglich sind.

Die Version ohne die Tests hat 60 Zeilen ... die kann man aber mit try { ... } catch { ... }, set_exception_handler () und throw new [custom]Exception () so lange aufblasen bis keiner mehr Fehler findet.

Aktuell machst du von Abstraktion und Wiederverwendung überhaupt keinen Gebrauch und stehst somit beim gegenüberliegendem Extrem.

Ja, nee, ist klar. Für einen Test martere ich mir das Hirn um aus 3 Blöcken mit 4 Zeilen, von denen 4 zwar ähnlich aussehen aber unterschiedlich sind durch einen Affenaufwand mit der Parametrisierung und einen Haufen "wenn und aber-Konstrukten" irgendwas mit 80 Zeilen zu bauen, was dann "wiederverwendbar" ist...

Das führt zu erstaunlich eleganten Programmentwürfen.

Mag sein. Eleganz als Selbstzweck?

if (!in_array($_REQUEST['method'],['PHP','NSLOOKUP','HOST']))

Das scheint Dir besser lesbar, mir indes nicht. Und ich kann das durchaus auch begründen: ein not(!) davor, eine Funktion mehr (in_array) und ein Syntaxkonstrukt ([,,,]) mehr - also für mich schwieriger zu lesen als das simple, wenn a != 1 und b != 2 und c != 3, dann leck mich doch am ...

Ich hatte ihn erst als einen Hinweis an den Anwendungsentwickler wahrgenommen.

Hups. Ein "Anwendungsentwickler" der sich aus dem Skript nicht mehr zieht als die Idee, dass und wie das DNS zu befragen ist, wie man mit simplen regulären Ausdrücken die Informationen extrahiert und sich dann den von ihm benötigten 60-Zeiler nicht selbst zusammenzuschießen kann … naja, der sollte sich nicht so nennen.

Wem das nicht passt, der wird nicht in die Pflege deines Skriptes einsteigen, der wird einfach davon Abstand nehmen.

Dann nimm doch, bitte, Abstand!

Jörg Reinholz