. // // 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 ?> Gigabyte en la UAL

Gigabyte en la UAL

El próximo jueves 16 de diciembre tendrá acto en la Universidad de Almería una conferencia (por la mañana) y un taller práctico (por la tarde) llevada a cabo tanto por gente de Gigabyte como overclockers con experiencia consolidada en España.

Por la mañana (de 9.45 a 13.00) se llevará a cabo la siguiente planificación:

  • Charla general de Gigabyte, representada por: Iñigo Pazos (Responsable de ventas de la zona norte) y Noelia Colino (Directora de marketing en España), en la cual se expondrán los nuevos modelos que estarán en el mercado, como las tecnologías actualmente implantadas.
  • Charla sobre overclocking para preparar las bases del taller, desarrollada por los overclockers: Daniel Contreras (aka DaCoSa), Sergio San Joaquín (aka Predator) y Josu Barandalla (aka Skunk).
  • Exhibición de overclocking con nitrógeno líquido.

Todo lo anterior se realizará en la sala de grados del Aulario IV de la UAL. La sala está limitada a 90 personas, así que habrá que estar un ratito antes para no quedarse fuera.

Por la tarde se realizarán 2 talleres (las plazas ya están todas ocupadas, así que lo comento sólo a modo de información). Tendrán lugar en el Aula4 del CITE3. El acceso está determinado por 2 grupos de personas: El primero tendrá su turno de 16.00 a 17.30 y el segundo de 18.00 a 19.30.

Se montarán 6 equipos con la siguiente configuración:

-Procesador: Intel Core i7 960

-Placa base Gigabyte X58A-UD7

-Memoria RAM: Kingston HyperX T1 2250Mhz

-Disco duro: Kingston V+ SSD

-Fuente de alimentacion: Antec TruePower 1200W

-Kuhler Shelf (disipadores de Antec)

El material para el overclocking es el siguiente:

-LN2 para la exhibición

-Hielo seco para los talleres

-Faber Castell (no me preguntéis que no sé a qué se refieren…)

-Pot de cobre para OC extremo en los talleres.

-Dewar

Habrá un cafelillo a eso de las 11.30 y otro a las 17.30.

Es importante asistir a la charla sobre overclocking para saber qué se hará exactamente después en los talleres. Quien asista recibirá un diploma de asistencia y se sortearán regalitos.

Al evento se han apuntado medios de información (TV locales) como medios impresos.

Quien no pueda ir y esté interesado en el evento, es posible seguir la conferencia a través de internet en la página http://ambotolabs.com/LiveTV, ya que harán streaming a la central de Gigabyte de todo el evento.

En el caso de surgir alguna novedad, basta ver la información comentada por Jose: http://inlumine.es/bermejo/

Es una lástima que quien se ha pringado para que tengamos esto… no pueda estar presente…

6 comments to Gigabyte en la UAL

  • Jose Antonio  says:

    Que mas quisiera ir…pero la tesis la defiendo ese mismo día. Es un fastidio.

  • Josu Barandalla -Skunk-  says:

    Chicos, habéis sido un lujazo de publico… y es algo realmente difícil de encontrar. Esperamos que os haya gustado y hayáis aprendido o al menos sacado algo en claro de los talleres y las conferencias.

    Muchas gracias a los asistentes y a la UAL una vez más.

    Saludos

    Josu

    • Javier Navarro Iribarne  says:

      En mi caso se salió de las espectativas, ha sido bastante más interesante de lo que esperaba y de igual forma he aprendido tanto teórica como prácticamente.

      Espero que os siga yendo igual de bien a donde vayáis y seréis bienvenidos si decís de volver de nuevo.

      Gracias por venir! 🙂

  • Josu Barandalla -Skunk-  says:

    Asi que te esperabas aburrir? jejeje 😉

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