oriolrius.cat

Des del 2000 compartiendo sobre…

Tag: patch

Arreglat el formulari de contacte del blog

Reading time: < 1 minute

Fa molt de temps que no funcionava correctament el formulari de contacte. Ja havia intentat arreglar-lo alguna que altre vegada sense massa sort. Però diria que per fi esta tot ok. Si el voleu provar està aquí.

pfSense: patch pel DynDNS quan la interficie WAN no té la IP pública

Reading time: 2 – 2 minutes

Si pel motiu que sigui, teniu un pfSense que amb el servei de Dynamic DNS i la vostre interficie WAN no té la IP pública amb la que voleu actualitzar el servei d’IP dinàmica que useu aquí trobareu la solució. Això pot passar per diversos motius:

  • Hi ha més d’una WAN
  • La WAN té una IP privada que enllaça amb el router
  • Accés a internet a través d’una VPN
  • etc

Doncs bé, concretament en el meu cas tinc dues sortides WAN i per si fos poc la que té IP dinàmica no té la IP asignada pel proveidor sinó una IP privada. Així doncs, buscant pels foros de pfSense he trobat aquesta solució al problema.

Es tracta de modificar el fitxer /etc/inc/dyndns.class. Primer de tot afegim aquest nou mètode (funció) a la classe:

/* Private function for getting real IP */
/* Author: Tri Tu */
function _checkip() {
   log_error("DynDns: Running _checkip() for real WAN IP");
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, 'http://checkip.dyndns.com');
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
   $data = curl_exec($ch);
   curl_close($ch);
   list($part1, $part2) = split(': ', $data, 2);
   list($ip, $junk) = split('<', $part2);
   return $ip;
}

Després dins del mateix fitxer busquem tots els llocs on apareix:

$wan_ip = get_current_wan_address();

i ho canviem per:

$wan_ip = $this->_checkip();

Si ús fixeu, el tema és tan senzill com dir-li a la classe que per saber quina és la seva IP de WAN ha de cridar la funció anterior, aquesta funció connecta a la típica web que retorna la IP que tenim i a partir d’aquí capturem aquesta IP i l’assignem a la variable que s’usar per saber si ha canviat la nostre IP.