Hi ihr,
gibt es ein ein Plugin oder eine andere Möglichkeit sich per eMail automatisch benachrichtigen zu lassen, wenn bestimmte IP-Adressen den Blog besuchen? Habe übrigens semmelstatz aktiviert, falls das etwas bringt.
Grüße, Marcel
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellen
Hi ihr,
gibt es ein ein Plugin oder eine andere Möglichkeit sich per eMail automatisch benachrichtigen zu lassen, wenn bestimmte IP-Adressen den Blog besuchen? Habe übrigens semmelstatz aktiviert, falls das etwas bringt.
Grüße, Marcel
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
Auf die Schnelle. Die Email wird nur einmal pro Besuch verschickt (es sei denn, du stehst auf Email-Spam :)), also nicht bei jedem Zugriff auf jede Seite pro Session. Sobald derjenige den Browser schließt, wird das Cookie gelöscht, und beim nächsten Aufruf deiner Seite wird erneut nur einmal eine E-Mail verschickt.
Anpassen musst du nur diese Zeile:
Wenn du mehrere IPs checken willst, einfach die Liste erweitern, z.B.:
Das Plugin:
<?php
/*
Plugin Name: IP Access Notification
Version: 0.7
Plugin URI: http://forum.wordpress-deutschland.org/plugins-und-widgets/34672-email-benachrichtigung-bei-bestimmter-ip-adresse.html
Description: Verschickt eine Email an den Blog-Admin, wenn ein Besucher mit der angebenen IP den Blog aufruft.
Author: Oliver Schlöbe
Author URI: http://www.schloebe.de/
*/
function os_ip_check() {
$visitor_ip = $_SERVER['REMOTE_ADDR'];
$zugriff_ort = $_SERVER['REQUEST_URI'];
$notify_ips = array("xxx.xxx.xxx.xxx"); // Welche IPs sollen gecheckt werden
if ( in_array( $visitor_ip, $notify_ips ) ) {
$absender = get_option('admin_email');
$empfaenger = get_option('admin_email');
$betreff = "Neuer Zugriff von IP " . $visitor_ip . " auf " . wp_specialchars( get_option('blogname') );
$headers = "From: " . wp_specialchars( get_option('blogname') ) . " <$absender>\n";
$headers .= "Content-Type: text/html\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$mailtext = "Neuer Zugriff auf " . wp_specialchars( get_option('blogname') ) . " mit der IP " . $visitor_ip . " auf die Seite " . $zugriff_ort;
$sanitized_blogtitle = sanitize_title( get_option('blogname') );
if( !isset( $_COOKIE["wp_" . $sanitized_blogtitle . "_ip_access"] ) ) {
setcookie( "wp_" . $sanitized_blogtitle . "_ip_access", $visitor_ip );
mail($empfaenger, $betreff, $mailtext, $headers);
}
}
}
add_action('init', 'os_ip_check');
?>
Alles anzeigen
Im wp-content/plugins - Verzeichnis ein Verzeichnis ip-access-notification anlegen, darin eine Datei ip-access-notification.php erstellen und den obigen Code einfügen. Plugin aktivieren, fertig.
Hi Alphawolf,
das ist ja mal echt toll, danke für die Antwort und dass du auch noch gleich ein Plugin erstellt hast, wow :cool:
Jetzt mal ne blöde Frage und zwar: Ist es auch technisch möglich, nicht die IP-Adresse als Auslöser zu nehmen, sondern einen bestimmten Kommentator, dessen semmelstatz-cookie ja gespeichert ist? Denn die letzten 5 Ziffern der IP-Adresse tauschen sich aus. Also dass wenn dieser bestimmte Kommentator die Seite besucht, dass dann eine eMail-Benachrichtigung erfolgt?
Grüße, Marcel
Ja, ist sicherlich auch möglich, aber dazu müsste man wissen, wie die Cookies heißen, die semmelstatz da erstellt. Ich selbst nutze es leider nicht. Hast du da ein paar Infos?
Btw, bitte kopiere den Plugincode nochmal neu. Hab da gerade gesehen, dass ein Variablenname nicht stimmte, und einen falschen Cookie-Namen erzeugt, sodass der Cookie nie gefunden wird...
Ok, aber die Frage ist doch, ob wirklich Semmelstatz das Cookie erstellt oder kreiert eher WordPress dieses selbst?
Okay, versuch es mal hiermit:
<?php
/*
Plugin Name: Access Notification
Version: 0.7
Plugin URI: http://forum.wordpress-deutschland.org/plugins-und-widgets/34672-email-benachrichtigung-bei-bestimmter-ip-adresse.html
Description: Verschickt eine Email an den Blog-Admin, wenn ein Blog-Kommentator erneut den Blog aufruft.
Author: Oliver Schlöbe
Author URI: http://www.schloebe.de/
*/
function os_cookie_check() {
$visitor_ip = $_SERVER['REMOTE_ADDR'];
$zugriff_ort = $_SERVER['REQUEST_URI'];
$email = get_option('admin_email');
$betreff = "Neuer Zugriff von IP " . $visitor_ip . " auf " . wp_specialchars( get_option('blogname') );
$headers = "From: " . wp_specialchars( get_option('blogname') ) . " <$email>\n";
$headers .= "Content-Type: text/html\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$mailtext = "Neuer Zugriff auf " . wp_specialchars( get_option('blogname') ) . " von Kommentator " . $_COOKIE["comment_author_" . COOKIEHASH] . " mit der IP " . $visitor_ip . " auf die Seite " . $zugriff_ort;
$sanitized_blogtitle = sanitize_title( get_option('blogname') );
if( isset( $_COOKIE["comment_author_" . COOKIEHASH] ) && $_COOKIE["comment_author_" . COOKIEHASH] == 'Alphawolf' && !isset( $_COOKIE["wp_os_access_" . COOKIEHASH] ) ) {
setcookie( "wp_os_access_" . COOKIEHASH, $visitor_ip );
mail($email, $betreff, $mailtext, $headers);
}
}
add_action('init', 'os_cookie_check');
?>
Alles anzeigen
Anpassen musst du in der Zeile
if( isset( $_COOKIE["comment_author_" . COOKIEHASH] ) && $_COOKIE["comment_author_" . COOKIEHASH] == 'Alphawolf' && !isset( $_COOKIE["wp_os_access_" . COOKIEHASH] ) ) {
nur die Abfrage
Du kannst den Namen (wie bereits eingebaut) abfragen, die E-Mail und die URL (falls angegeben) des Kommentators.
Also z.B.
$_COOKIE["comment_author_url_" . COOKIEHASH] == 'http://www.domain.de'
$_COOKIE["comment_author_email_" . COOKIEHASH] == 'info@domain.de'
$_COOKIE["comment_author_" . COOKIEHASH] == 'Alphawolf'
Einfach mal probieren. :)
Also wirklich vielen Dank, dass du dir persönlich so viel Mühe gibst. Leider passiert gar nichts, also es wird leider keine Mail verschickt, obwohl ich alle möglichen Einstellungen versucht habe und sie mit meinem Testaccount auf einem anderen Browser getestet habe. Meinst man kann da noch was machen?
1.) Du hast den Kommentar als nicht-registrierter User geschrieben, und nicht als eingeloggter Admin? :)
2.) Welche WP-Version nutzt du?
3.) Wie sieht bei dir jetzt die Abfrage aus?
4.) Enthält der Benutzername, den du (ggf) abfragst, Leerzeichen oder Sonderzeichen? Ggf. werden die Werte url-encodet im Cookie gespeichert.
Hehe ich glaube genau der erste Punkt war auch gleich das Problem :-P
Hab die Probe aufs Exempel gemacht und es live ausprobiert. Anscheinend hat es auch funktioniert, eine eMail wurde versendet. Der Kommentator hat die Seite gestern dreimal besucht (laut Semmelstatz), aber es kam leider nur eine Mail.
Liegt es vielleicht daran, weil das Cookie nach der Sitzung nicht wieder gelöscht wird?
Liegt es vielleicht daran, weil das Cookie nach der Sitzung nicht wieder gelöscht wird?
Beim Schließen des Browsers wird das Cookie gelöscht. Das macht jeder Browser mit Cookies, die kein Ablaufdatum haben. Offenbar hat dieser jemand seinen Browser zwischen den Besuchen nicht geschlossen.
Man könnte das Script so anpassen, dass der Cookie nach 30 oder 60 Minuten abläuft und gelöscht wird. Dann würdest du die Mail erneut bekommen, wenn er die Seite nach 30 oder 60 Minuten wieder betritt.
Hm ja stimmt, da könntest du Recht haben.
Man könnte das Script so anpassen, dass der Cookie nach 30 oder 60 Minuten abläuft und gelöscht wird. Dann würdest du die Mail erneut bekommen, wenn er die Seite nach 30 oder 60 Minuten wieder betritt.
Echt kann man das machen? Echt vielen Dank übrigens noch mal dass du dich da persönlich so reinhängst, finde ich echt super. Großen Respekt meinerseits.
Huch, gerade erst gesehen, dass du schon geantwortest hast. :)
Hier das Plugin, womit der Cookie nach einer Stunde gelöscht wird:
<?php
/*
Plugin Name: Cookie Access Notification
Version: 0.7
Plugin URI: http://forum.wordpress-deutschland.org/plugins-und-widgets/34672-email-benachrichtigung-bei-bestimmter-ip-adresse.html
Description: Verschickt eine Email an den Blog-Admin, wenn ein Blog-Kommentator erneut den Blog aufruft.
Author: Oliver Schlöbe
Author URI: http://www.schloebe.de/
*/
function os_cookie_check() {
$visitor_ip = $_SERVER['REMOTE_ADDR'];
$zugriff_ort = $_SERVER['REQUEST_URI'];
$email = get_option('admin_email');
$betreff = "Neuer Zugriff von IP " . $visitor_ip . " auf " . wp_specialchars( get_option('blogname') );
$headers = "From: " . wp_specialchars( get_option('blogname') ) . " <$email>\n";
$headers .= "Content-Type: text/html\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$mailtext = "Neuer Zugriff auf " . wp_specialchars( get_option('blogname') ) . " von Kommentator " . $_COOKIE["comment_author_" . COOKIEHASH] . " mit der IP " . $visitor_ip . " auf die Seite " . $zugriff_ort;
$sanitized_blogtitle = sanitize_title( get_option('blogname') );
if( isset( $_COOKIE["comment_author_" . COOKIEHASH] ) && $_COOKIE["comment_author_" . COOKIEHASH] == 'Alphawolf' && !isset( $_COOKIE["wp_os_access_" . COOKIEHASH] ) ) {
setcookie( "wp_os_access_" . COOKIEHASH, $visitor_ip, time()+3600 );
mail($email, $betreff, $mailtext, $headers);
}
}
add_action('init', 'os_cookie_check');
?>
Alles anzeigen
Wichtig ist dabei diese Zeile:
Wenn du z.B. nach 2 Stunden löschen lassen willst, einfach mathematisch die 3600 multiplizieren:
für 2 Stunden etc...
Ok, also noch einmal vielen vielen Dank für deinen persönlichen Einsatz, das Plugin scheint super zu funktionieren!
Saubere Arbeit!
bei der ip ändern sich doch bei jeden neustart des pc´s die letzten 3 ziffern kommt die e-mail dann trotzdem ?
bei der ip ändern sich doch bei jeden neustart des pc´s die letzten 3 ziffern kommt die e-mail dann trotzdem ?
Nein, wenn die IP nicht identisch ist, kommt keine E-Mail. Das Plugin war auch eher für Suchmaschinenbots gedacht, die haben ja eine unique IP.
Wenn du Besucher tracken willst, hatte ich mal http://wordpress.org/extend/plugins…s-notification/ gemacht, allerdings bezweifle ich, dass das heute noch funktioniert, da die Cookies heute ganz anders gesetzt und "gesalzen" werden. ;)
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!