No Soup
Block users from a specific IP or range(s) of IPs and redirect them to another site.
Use with care, it’s version 0.3 ?
bad_ip_ranges = get_option('_no_soup_bad_ip_ranges', ''); $this->eat_that = get_option('_no_soup_eat_that', ''); } public function init_admin() { add_options_page(__('No Soup', "nosoup"), __('No Soup', "nosoup"), 'manage_options', basename(__FILE__), array(&$this, 'no_soup_admin_page') ); } public function no_soup_admin_page() { // Handle updates if( !empty($_POST) && $_POST[ 'action' ] == 'no-soup-save' ) { check_admin_referer('no-soup-save', 'no-soup-nonce'); $this->bad_ip_ranges = esc_html($_POST[ 'no_soup_bad_ip_ranges' ]); update_option('_no_soup_bad_ip_ranges', $this->bad_ip_ranges ); $this->eat_that = esc_html($_POST[ 'no_soup_eat_that' ]); update_option('_no_soup_eat_that', $this->eat_that ); ?>eat_that && $this->banned_ip() ) : wp_redirect( $this->eat_that ); die; endif; } private function banned_ip() { $ip = $_SERVER['REMOTE_ADDR']; $networks = preg_split("/[\r\n,]+/", $this->bad_ip_ranges); foreach ( $networks as $range ) : if ( false === strpos($range, '-')) : if ( 3 in_cidr( $range, $ip ) ) : return true; endif; else : if ( $this->in_ip_range($range, $ip)) : return true; endif; endif; endforeach; return false; } function in_cidr($network, $ip) { $ip_arr = explode('/', $network); $network_long = ip2long($ip_arr[0]); $x = ip2long($ip_arr[1]); $mask = long2ip($x) == $ip_arr[1] ? $x : 0xffffffff << (32 - $ip_arr[1]); $ip_long = ip2long($ip); return ($ip_long & $mask) == ($network_long & $mask); } function in_ip_range($range, $ip){ $range = preg_replace("'\s+'", '', $range); if ( false === strpos( $range, '-') ) : return ( $ip_start == $ip ); else : list($ip_start, $ip_end) = preg_split('/-/', $range); $iplong = ip2long( $ip ); return ( ip2long( $ip_start ) = $iplong ); endif; } } } if ( ! function_exists( '_log' ) ) { function _log() { if( WP_DEBUG === true ) { $args = func_get_args(); error_log( print_r( $args, true ) ); } } } // Init class if (class_exists("NoSoup")) { $nosoup = new NoSoup(); } add_action( 'admin_menu', array(&$nosoup, 'init_admin') ); add_action( 'init', array(&$nosoup, 'check_ip') );Block users from a specific IP or range(s) of IPs and redirect them to another site.
If you want to block for instance the IP-addresses of swedish authorities, you can use the ranges below and instead show them the way to the Wikipedia article about ACTA. I’m not saying you should, I’m just saying you could, ok?
193.44.94.0 - 193.44.94.255 193.15.242.192 - 193.15.242.223 195.67.14.48 - 195.67.14.63 194.71.64.0 - 194.71.82.255 192.137.161.0 - 192.137.164.255 192.165.145.0 - 192.165.145.255 80.252.170.244 - 80.252.170.247 194.52.83.0 - 194.52.83.255 195.67.14.64 - 195.67.14.127 130.242.25.0 - 130.242.25.255 195.198.201.208 - 195.198.201.215 195.67.88.208 - 195.67.88.223 81.216.70.0 - 81.216.70.255 212.181.33.112 - 212.181.33.115 212.181.33.12 - 212.181.33.15 212.28.207.32 - 212.28.207.63 217.77.240.177 - 217.77.240.177 217.77.247.160 - 217.77.247.163 192.71.128.0 - 192.71.128.255 194.16.218.60 - 194.16.218.63 194.18.111.24 - 194.18.111.27 62.65.85.16 - 62.65.85.31 192.165.31.0 - 192.165.31.255 192.165.173.0 - 192.165.173.255 195.198.122.144 - 195.198.122.159 192.36.96.0 - 192.36.96.255 193.182.184.0 - 193.182.184.255 193.182.190.0 - 193.182.190.255 195.5.185.0 - 195.5.185.255 194.103.14.0 - 194.103.15.255 85.119.130.192 - 85.119.130.207 85.119.133.128 - 85.119.133.191 212.181.83.0 - 212.181.83.3 192.121.27.0 - 192.121.27.255 192.121.211.0 - 192.121.218.255 213.50.75.16 - 213.50.75.31 193.234.1.0 - 193.234.141.255 193.235.152.0 - 193.235.152.255 193.241.212.0 - 193.241.212.255 194.18.73.0 - 194.18.73.255 194.18.169.0 - 194.18.171.255 192.121.237.0 - 192.121.237.255 193.180.162.0 - 193.180.163.255 194.52.96.0 - 194.52.127.255 194.16.84.160 - 194.16.84.167 195.84.103.128 - 195.84.103.191 195.84.15.32 - 195.84.15.47 195.84.76.0 - 195.84.76.255 81.216.66.0 - 81.216.66.31 194.198.144.0 - 194.198.144.255 80.80.64.0 - 80.80.65.255 192.121.238.0 - 192.121.238.255 62.20.16.216 - 62.20.16.223 195.58.108.96 - 195.58.108.127 195.58.108.128 - 195.58.108.159 195.58.110.248 - 195.58.110.255 195.67.68.48 - 195.67.68.55 195.67.81.48 - 195.67.81.63 195.84.193.80 - 195.84.193.95 193.181.64.0 - 193.181.127.255 193.241.252.0 - 193.241.252.255 193.241.0.0 - 193.241.211.255 193.241.213.0 - 193.241.251.255 193.241.253.0 - 193.241.255.255 192.121.30.0 - 192.121.30.255 143.118.0.0 - 143.118.255.255 192.121.44.0 - 192.121.44.255 62.119.64.128 - 62.119.64.135 212.247.172.64 - 212.247.172.95 145.235.0.0 - 145.235.255.255 192.121.50.0 - 192.121.52.255 192.165.140.0 - 192.165.141.255 159.72.0.0 - 159.72.255.255 62.119.150.16 - 62.119.150.31 194.14.184.0 - 194.14.186.255 192.121.82.0 - 192.121.82.255 192.121.200.0 - 192.121.202.255 159.190.0.0 - 159.190.255.255 192.36.5.0 - 192.36.5.255 212.247.200.64 - 212.247.200.95 192.121.90.0 - 192.121.90.255 130.242.58.0 - 130.242.58.255 138.215.0.0 - 138.215.255.255 212.214.131.192 - 212.214.131.223 212.247.50.144 - 212.247.50.159 192.121.219.0 - 192.121.219.255 62.95.69.0 - 62.95.69.255 62.95.13.160 - 62.95.13.175 91.199.170.0 - 91.199.170.255 62.119.21.32 - 62.119.21.63 213.131.146.64 - 213.131.146.79 62.95.35.0 - 62.95.35.31 195.67.83.80 - 195.67.83.95 213.242.135.0 - 213.242.135.7 62.119.134.8 - 62.119.134.15 62.119.24.8 - 62.119.24.15 150.227.0.0 - 150.227.255.255 192.36.132.0 - 192.36.132.255 192.36.14.0 - 192.36.14.255 192.36.220.0 - 192.36.220.255 192.36.221.0 - 192.36.221.255 193.180.254.0 - 193.180.254.255 147.186.0.0 - 147.186.255.255 195.67.26.48 - 195.67.26.51 195.67.45.136 - 195.67.45.143 195.198.83.24 - 195.198.83.31 212.162.184.104 - 212.162.184.111 137.61.0.0 - 137.61.255.255 137.60.0.0 - 137.60.255.255 137.59.0.0 - 137.59.255.255 192.121.131.0 - 192.121.131.255 193.15.216.208 - 193.15.216.223 193.15.200.48 - 193.15.200.63 195.198.184.208 - 195.198.184.223 156.49.0.0 - 156.49.255.255 62.20.16.216 - 62.20.16.223 62.20.57.192 - 62.20.57.223 212.181.19.0 - 212.181.19.255 62.127.100.40 - 62.127.100.47 192.36.25.0 - 192.36.25.255 192.165.69.0 - 192.165.69.255 193.181.190.0 - 193.181.191.255 193.235.83.0 - 193.235.84.255 194.132.96.0 - 194.132.103.255 193.10.58.0 - 193.10.59.255 193.182.167.0 - 193.182.167.255 62.13.78.0 - 62.13.79.255 213.115.124.8 - 213.115.124.11 213.242.135.144 - 213.242.135.159 82.136.153.64 - 82.136.153.95 192.36.213.0 - 192.36.213.255 192.165.64.0 - 192.165.64.255 193.12.105.0 - 193.12.105.255 195.42.219.208 - 195.42.219.215 192.121.89.0 - 192.121.89.255 130.242.12.0 - 130.242.12.255 130.242.60.24 - 130.242.60.31 195.17.245.40 - 195.17.245.47 213.88.173.0 - 213.88.173.15 193.15.197.32 - 193.15.197.47 195.67.16.32 - 195.67.16.63 194.50.107.0 - 194.50.107.255 62.181.240.120 - 62.181.240.135 83.241.192.88 - 83.241.192.91 130.242.22.0 - 130.242.22.255 195.67.76.224 - 195.67.76.255 213.80.95.40 - 213.80.95.47 80.252.162.192 - 80.252.162.207 194.18.111.96 - 194.18.111.103 192.165.243.0 - 192.165.243.255 192.176.242.0 - 192.176.242.255 194.198.105.0 - 194.198.105.255 194.198.255.0 - 194.198.255.255 193.121.206.128 - 193.121.206.159 212.181.96.224 - 212.181.96.231 62.20.85.128 - 62.20.85.143 213.115.92.240 - 213.115.92.247 88.131.68.108 - 88.131.68.111 88.131.16.180 - 88.131.16.183 83.241.222.192 - 83.241.222.223 91.217.186.0 - 91.217.186.255 213.199.105.128 - 213.199.105.135 193.15.189.192 - 193.15.189.255 82.182.190.0 - 82.182.190.255 194.198.96.0 - 194.198.96.255 213.115.31.0 - 213.115.31.15
WordPress Plugins
My WordPress plugins
WordPress 3.3 är här
Då var 3.3 äntligen ute.
Se när Matt firar med champagne och läs mer om releasen här.
Du laddar som vanligt ner den nya versionen antagligen som en vanlig uppdatering via ”wp-admin” eller så laddar du ner hela paketet från wordpress.org.
[wpvideo I7NAw9Zk]
Här ska testas!
Snabbare WordPress på egen server
Sen jag bytte till Tilaa, där jag sköter webbserver och databas själv, har svarstiderna förbättrats avsevärt.
Pingdom rapporterar:
Jag kör Gentoo Linux, nginx, php-fpm, fastcgi-cache, apc och mysql med query cache.
jonasnordstrom.se har flyttat från Binero till Tilaa
Igår flyttade jag hela sajten till Tilaa, som är en holländsk VPS, där jag kör nginx och php-fpm på Gentoo Linux.
Även Topp30 och Fredagswhisky (två mycket små sajter) ligger numera på Tilaa. Orsaken till flytten är förstås att jag vill ha full koll på mina WordPress-installationer. Jag vill kunna prova olika tekniker, mäta prestanda, göra lite okonventionella prestandaoptimerimeringar, få SSH-access(!) och framförallt lära mig mer om serversidan av webbprojekt.
Jag har inget otalt med Binero, de har alltid (nästan …) fungerat bra, även om jag fortfarande låg på old.binero.com!
Om sajten svajar lite den här första tiden så vet ni alltså vad det beror på. Lite vägarbete.
Jonas tipsar – 18 October 2011
- This and that and what not – Lite om Ajour och förväntningar
- Matt Mullenweg – Chatting with Dries of Drupal
- www.thekitchn.com – The Metro Wine Map of France | Apartment Therapy The Kitchn
– / france frenchwine drinking via:zite - www.insidefacebook.com – Inside Facebook · The 25 Most Liked Pages on Facebook, Fall 2011
– / facebook zynga via:zite - Daniel – Det hände något idag. Kanske något stort, jag vet inte. Ibland
- High Performance Web Sites – frontend SPOF survey
- Dagens Media – Senaste nytt – Bonnier skrotar speltidning
- www.thenextweb.com – Demand for iOS 5 & iCloud was so high, Apple almost broke the Internet
– ios5 tog nästan sönder internet 🙂 - Coding Horror – The Gamification
- jardenberg unedited – Om känslan att vara övervakad
- Daring Fireball – The iPad Marches On
- Boing Boing – Rich and Tasty: Recipes for the New Class Warfare
- Nikke Index – Linkability – Länkbarhet
- Otto on WordPress – GoDaddy Hosting = Epic Failure. Looking for a new hosting service.
- apt46.net – So You Want To Marry Your Gay 14-Year Old First Cousin | Apt46
- www.danielaberg.se – It just works
- jardenberg unedited – Steve Jobs är död
- www.slideshare.net – Relative Sizes Of Planets And Stars
- The Tapir's Tale – 7 Reasons to go to Øredev 2011
- MKSE.com – All about CMS – Heroku erbjuder Python och Django stöd
Unrecognized exception: [href=edit-comments.php?page=disqus]
I senaste WordPress-betan, 3.2 beta 1, används jQuery 1.5.2. Den versionen tillåter inte längre css-selektorer som inte sätter attributvärden inom citationstecken.
Om man, som jag, kör Disqus som kommentarsystem så uppstår ett problem, eftersom Disqus använder [property=value]-metoden vilket gör att jag får javascriptfel i admin vilket gör att de flesta menyknappar etc. är helt döda. Firebug visar det här felet:
Som tur är är det lätt att ordna, det är bara att gå in i plugin-filen disqus-comment-system/disqus.php och ändra:
mc.find('a.wp-has-submenu').attr('href', 'edit-comments.php?page=disqus').end()
.find('.wp-submenu li:has(a[href=edit-comments.php?page=disqus])')
.prependTo(mc.find('.wp-submenu ul'));
till
mc.find('a.wp-has-submenu').attr('href', 'edit-comments.php?page=disqus').end()
.find('.wp-submenu li:has(a[href="edit-comments.php?page=disqus"])')
.prependTo(mc.find('.wp-submenu ul'));
(det är alltså [href=edit-comments.php?page=disqus] som behöver attributfnuttar: [href=”edit-comments.php?page=disqus”])
Mer info här.
Jag gissar att Disqus lagar den här buggen väldigt snart.
WordPress 3.2-bleeding, screenshot
Jag gjorde som Johannes Fosseus och uppdaterade till WordPress 3.2-bleeding. Den är inte helt stabil, knappar och menyer är ibland helt döda (javascriptfel) och det ser lite väl ostilat ut ibland. Ska bli intressant att följa, första betan kommer kanske redan på onsdag?
Före/Efter
Och så här ser fullscreen-editing av det här inlägget ut.
WordPress kickstart
Det går ganska fort att installera WordPress. Med ett enkelt bash-script går det ännu fortare.
Så här gör jag för att installera en ny WP-sajt på min gentoo-server med nginx som kör i en virtualbox-image på min Macbook Pro.
Scriptet laddar hem senaste nightly build av WordPress, packar upp den, skapar en ny virtual host, skapar databas och användare samt modifierar wp-config.php. Efter det behöver jag bara lägga in det nya host-namnet i /etc/hosts och sajten är uppe.