* Copyright (C) 2011-2013 Juanjo Menent * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/admin/geoipmaxmind.php * \ingroup geoipmaxmind * \brief Setup page for geoipmaxmind module */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/dolgeoip.class.php'; // Security check if (!$user->admin) accessforbidden(); // Load translation files required by the page $langs->loadLangs(array("admin","errors")); $action = GETPOST('action', 'aZ09'); /* * Actions */ if ($action == 'set') { $error=0; $gimcdf= GETPOST("GEOIPMAXMIND_COUNTRY_DATAFILE"); if (! $gimcdf && ! file_exists($gimcdf)) { setEventMessages($langs->trans("ErrorFileNotFound", $gimcdf), null, 'errors'); $error++; } if (! $error) { $res1 = dolibarr_set_const($db, "GEOIP_VERSION", GETPOST('geoipversion', 'aZ09'), 'chaine', 0, '', $conf->entity); if (! $res1 > 0) $error++; $res2 = dolibarr_set_const($db, "GEOIPMAXMIND_COUNTRY_DATAFILE", $gimcdf, 'chaine', 0, '', $conf->entity); if (! $res2 > 0) $error++; if (! $error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } else { setEventMessages($langs->trans("Error"), null, 'errors'); } } } if (! isset($conf->global->GEOIP_VERSION)) $conf->global->GEOIP_VERSION = '2'; /* * View */ $form=new Form($db); llxHeader(); $linkback=''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans("GeoIPMaxmindSetup"), $linkback, 'title_setup'); print '
'; $version=''; $geoip=''; if (! empty($conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE)) { $geoip=new DolGeoIP('country', $conf->global->GEOIPMAXMIND_COUNTRY_DATAFILE); } // Mode print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; // Lib version print ''; print ''; // Path to database file print ''; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("GeoIPLibVersion").''; $arrayofvalues = array('php' => 'Native PHP functions', '1' => 'Embedded GeoIP v1', '2' => 'Embedded GeoIP v2'); print $form->selectarray('geoipversion', $arrayofvalues, (isset($conf->global->GEOIP_VERSION) ? $conf->global->GEOIP_VERSION : '2')); if ($conf->global->GEOIP_VERSION == 'php') { if ($geoip) $version=$geoip->getVersion(); if ($version) { print '
'.$langs->trans("Version").': '.$version; } } print '
'.$langs->trans("PathToGeoIPMaxmindCountryDataFile").''; if ($conf->global->GEOIP_VERSION == 'php') { print 'Using geoip PHP internal functions. Value must be '.geoip_db_filename(GEOIP_COUNTRY_EDITION).' or '.geoip_db_filename(GEOIP_CITY_EDITION_REV1).' or /pathtodatafile/GeoLite2-Country.mmdb
'; } print ''; print '
'; print "
\n"; print '
'; print $langs->trans("NoteOnPathLocation").'
'; $url1='http://www.maxmind.com/en/city?rId=awstats'; print $langs->trans("YouCanDownloadFreeDatFileTo", ''.$url1.''); print '
'; $url2='http://www.maxmind.com/en/city?rId=awstats'; print $langs->trans("YouCanDownloadAdvancedDatFileTo", ''.$url2.''); if ($geoip) { print '

'; print '
'.$langs->trans("TestGeoIPResult", $ip).':'; $ip='24.24.24.24'; print '
'.$ip.' -> '; $result=dol_print_ip($ip, 1); if ($result) print $result; else print $langs->trans("Error"); $ip='2a01:e0a:7e:4a60:429a:23ff:f7b8:dc8a'; // should be France print '
'.$ip.' -> '; $result=dol_print_ip($ip, 1); if ($result) print $result; else print $langs->trans("Error"); /* We disable this test because dol_print_ip need an ip as input $ip='www.google.com'; print '
'.$ip.' -> '; $result=dol_print_ip($ip,1); if ($result) print $result; else print $langs->trans("Error"); */ //var_dump($_SERVER); $ip = getUserRemoteIP(); //$ip='91.161.249.43'; $isip=is_ip($ip); if ($isip == 1) { print '
'.$ip.' -> '; $result=dol_print_ip($ip, 1); if ($result) print $result; else print $langs->trans("Error"); } else { print '
'.$ip.' -> '; $result=dol_print_ip($ip, 1); if ($result) print $result; else print $langs->trans("NotAPublicIp"); } $geoip->close(); } // End of page llxFooter(); $db->close();