. // // Alexey A.Znayev, znaeff@mail.ru, http://xbsoft.org, http://xbsoft.ru // /////////////////////////////////////////////////////////////////////////// // This file contains public class DNSBL // This class performs IP address check in spam blocking lists as described // on http://ru.wikipedia.org/wiki/RBL class DNSBL { private $_aCheckers = array( // list of checkers available for individual checking 'spamhaus' => array('.zen.spamhaus.org', true), //available for group checking with 'all' key 'spamcop' => array('.bl.spamcop.net', true), //available for group checking with 'all' key 'dsbl' => array('.list.dsbl.org', false), //not available for group checking with 'all' key 'ordb' => array('.relays.ordb.org', false), //not available for group checking with 'all' key 'sorbs' => array('.dnsbl.sorbs.net', false), //not available for group checking with 'all' key 'njabl' => array('.dnsbl.njabl.org', false) //not available for group checking with 'all' key ); // AZ - 1. Key 'all' is illegal // AZ - 2. Most of spammer IP addresses is covered by 'spamhaus' & 'spamcop' (and they are fast), // some of the rest may not work sometimes, you can make them group checking available after individual testing private $_sDefaultChecker = 'spamhaus'; /////////////////////////////////////////////////////////////////////////// // CheckSpamIP - check IP for spam in checkers : given, default or all available for group checking (may be slow) // parameters: // string $ip - ip address // string $checker - checker name or 'all' or nothing // returns: // true when IP exitsts in spam-lists of $checker or at least one of all checkers // false when not or when ip address is local or not correct public function CheckSpamIP($ip, $checker = ''){ if(empty($ip)) return false; if(preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $ip) != 1) return false; $octets = explode('.', $ip); if($octets[0] == '127') return false; if($octets[0] == '10') return false; if($octets[0] == '192' && $octets[0] == '168') return false; if($octets[0] == '169' && $octets[0] == '254') return false; // ms windows if((int)$octets[0] > 255 || (int)$octets[1] > 255 || (int)$octets[2] > 255 || (int)$octets[3] > 255 ) return false; $ret_val = false; $PTR = implode(array_reverse($octets), '.'); if($checker === 'all'){ foreach(array_values($this->_aCheckers) as $c){ if($c[1]){ $ret_val = $ret_val || $this->_CheckDNSAnswer(dns_get_record($PTR . $c[0], DNS_A)); } if($ret_val) break; } }else if(array_key_exists($checker, $this->_aCheckers)){ $ret_val = $this->_CheckDNSAnswer(dns_get_record($PTR . $this->_aCheckers[$checker][0], DNS_A)); }else{ $ret_val = $this->_CheckDNSAnswer(dns_get_record($PTR . $this->_aCheckers[$this->_sDefaultChecker][0], DNS_A)); } return $ret_val; } /////////////////////////////////////////////////////////////////////////// // GetCheckers - gets list of available checker names // returns: // array of strings public function GetCheckers(){ return array_keys($this->_aCheckers); } /////////////////////////////////////////////////////////////////////////// // GetGroupCheckers - gets list of checker names available for group checking with 'all' key // returns: // array of strings public function GetGroupCheckers(){ $ret_val = array(); foreach(array_keys($this->_aCheckers) as $k) if($this->_aCheckers[$k][1]) array_push($ret_val, $k); return $ret_val; } /////////////////////////////////////////////////////////////////////////// // GetDefaultChecker - gets default checker name // returns: // string public function GetDefaultChecker(){ return $this->_sDefaultChecker; } /////////////////////////////////////////////////////////////////////////// // SetDefaultChecker - sets default checker name // parameters: // string $new_checker - new default checker name // returns: // true when success // false when failed ($new_checker is not in the list of available checker names) public function SetDefaultChecker($new_checker){ if(array_key_exists($new_checker, $this->_aCheckers)){ $this->_sDefaultChecker = $new_checker; return true; }else{ return false; } } /////////////////////////////////////////////////////////////////////////// // EnableGroupChecking - sets checker available for group checking // parameters: // string $checker - checker name // returns: // true when success ($checker is included) // false when failed ($checker is not in the list of available checker names) public function EnableGroupChecking($checker){ if(array_key_exists($checker, $this->_aCheckers)){ $this->_aCheckers[$checker][1] = true; return true; }else{ return false; } } /////////////////////////////////////////////////////////////////////////// // DisableGroupChecking - sets checker not available for group checking // parameters: // string $checker - checker name // returns: // true when success ($checker is excluded) // false when failed ($checker is not in the list of available checker names) public function DisableGroupChecking($checker){ if(array_key_exists($checker, $this->_aCheckers)){ $this->_aCheckers[$checker][1] = false; return true; }else{ return false; } } // private methods /////////////////////////////////////////////////////////////////////////// // _CheckDNSAnswer - checks DNS-server answer for 127.0.0.* values // returns: // true when success // false when failed private function _CheckDNSAnswer($dns_answer){ if(!is_array($dns_answer)) return false; $len = count($dns_answer); if($len <= 0) return false; for($i=0; $i<$len; $i++){ $obj = $dns_answer[$i]; if(!(is_object($obj) || is_array($obj))) return false; $ip_str = $obj['ip']; if(!is_string($ip_str)) return false; $pos = strpos($ip_str, '127.0.0.'); if($pos !== false) return true; } return false; } } // end of class DNSBL ?> Configurar AR5007 en Ubuntu x64

Configurar AR5007 en Ubuntu x64

Indaltronia vuelve a tener vida, esta vez en servidor propio; de esta forma esperamos no volver a tener problemas legales… hmmm.

La primera entrada que os traemos me ha servido a mi, así que supongo que a muchos más le hará falta, vamos a configurar nuestra Atheros en sistemas Linux x64, concretamente le vamos a instalar los drivers madwifi para hacer «maldades» 😀

Bien, después de empezar a aprovechar los nuevos procesadores de 64 bits utilizando Vista 64 y Ubuntu 64 bits… pueden surgir problemas con algún hardware y su soporte, pues las soluciones empleadas en las versiones x86 pueden no funcionar en los 64 bits.

Esto me pasó con la tarjeta Atheros AR5007EG. Una de las primeras soluciones que encontré en la red fué la de usar ndiswrapper, que me había funcionado bien en otros PCs con otras tarjetas. Pero la configuración era inestable, y no se asociaba la conexión con el router casi nunca. Supongo que esta solución será válida para sistemas de 32 bits, pero en sistemas de 64 bits es inestable.

Si lo intentasteis con ndiswrapper, os recomiendo que elimineis toda la configuración existente antes de utilizar el método que más adelante comento.

Bien, ahora os comento lo que teneis que hacer paso por paso (en una terminal de sistema):

Primero, asegurarse de tener instalado y actualizado build-essential:

[code lang=»bash»]sudo apt-get install build-essential[/code]

Segundo, también necesitarás los linux-restricted-modules:

[code lang=»bash»]sudo apt-get install linux-restricted-modules-$(uname -r)[/code]

Tercero, instalar subversion:

[code lang=»bash»]sudo apt-get install subversion[/code]

Bien, si habeis utilizado ndiwrapper, para quitarlo haced lo siguiente:

[code lang=»bash»]sudo ndiswrapper -e net5211
sudo modprobe -r ndiswrapper
sudo apt-get remove –purge ndiswrapper-common ndiswrapper-utils ndisgtk[/code]

También quitar las referencias que existan de ath_pci y ath_hal en blacklist:

[code lang=»bash»]gksudo gedit /etc/modprobe.d/blacklist[/code]

Cuarto, ir a Sistema->Administración->Controladores de Hardware y deshabilitar el driver Atheros, y seguidamente reiniciar el sistema.

Quinto, después de reiniciar instalar el driver madwifi:

[code lang=»bash»]svn co https://svn.madwifi.org/madwifi/branches/madwifi-hal-0.10.5.6
cd /madwifi-hal-0.10.5.6
make
sudo make install
sudo depmod -ae
sudo modprobe ath_pci
echo ath_hal | sudo tee -a /etc/modules
echo ath_pci | sudo tee -a /etc/modules[/code]

Sexto, finalmente ir a Sistema->Administración->Controladores de Hardware y habilitar de nuevo el driver de Atheros

Con esto yo solucioné el problema… recordaros que si actualizais el kernel, teneis que repetir el procedimiento para que os funcione.

Extraido de: JuanAntonioMosquera

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Connect with Facebook