Lines Matching +full:x +full:- +full:bo
3 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
113 "BO" => 30,
371 "BO",
951 "Guinea-Bissau",
1075 "Timor-Leste",
1118 "--",
1362 "--",
1363 "--",
1364 "--",
1373 "--"
1397 $gi->databaseType = GEOIP_COUNTRY_EDITION;
1398 $gi->record_length = STANDARD_RECORD_LENGTH;
1399 if ($gi->flags & GEOIP_SHARED_MEMORY) {
1400 $offset = @shmop_size($gi->shmid) - 3;
1402 $delim = @shmop_read($gi->shmid, $offset, 3);
1405 $gi->databaseType = ord(@shmop_read($gi->shmid, $offset, 1));
1406 if ($gi->databaseType >= 106) {
1407 $gi->databaseType -= 105;
1411 if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
1412 $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
1413 } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
1414 $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
1415 } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
1416 || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
1417 || ($gi->databaseType == GEOIP_ORG_EDITION)
1418 || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
1419 || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
1420 || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
1421 || ($gi->databaseType == GEOIP_ISP_EDITION)
1422 || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
1423 || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
1424 || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
1425 || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
1426 || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
1427 || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
1428 || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
1429 || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
1430 || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
1431 || ($gi->databaseType == GEOIP_ASNUM_EDITION)
1432 || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)
1434 $gi->databaseSegments = 0;
1435 $buf = @shmop_read($gi->shmid, $offset, SEGMENT_RECORD_LENGTH);
1437 $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
1439 if (($gi->databaseType == GEOIP_ORG_EDITION)
1440 || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
1441 || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
1442 || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
1443 || ($gi->databaseType == GEOIP_ISP_EDITION)
1444 || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
1446 $gi->record_length = ORG_RECORD_LENGTH;
1451 $offset -= 4;
1454 if (($gi->databaseType == GEOIP_COUNTRY_EDITION) ||
1455 ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) ||
1456 ($gi->databaseType == GEOIP_PROXY_EDITION) ||
1457 ($gi->databaseType == GEOIP_NETSPEED_EDITION)
1459 $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
1462 $filepos = ftell($gi->filehandle);
1463 fseek($gi->filehandle, -3, SEEK_END);
1465 $delim = fread($gi->filehandle, 3);
1467 $gi->databaseType = ord(fread($gi->filehandle, 1));
1468 if ($gi->databaseType >= 106) {
1469 $gi->databaseType -= 105;
1471 if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
1472 $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
1473 } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
1474 $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
1475 } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
1476 || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
1477 || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
1478 || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
1479 || ($gi->databaseType == GEOIP_ORG_EDITION)
1480 || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
1481 || ($gi->databaseType == GEOIP_ISP_EDITION)
1482 || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
1483 || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
1484 || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
1485 || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
1486 || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
1487 || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
1488 || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
1489 || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
1490 || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
1491 || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
1492 || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
1493 || ($gi->databaseType == GEOIP_ASNUM_EDITION)
1494 || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)
1496 $gi->databaseSegments = 0;
1497 $buf = fread($gi->filehandle, SEGMENT_RECORD_LENGTH);
1499 $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
1501 if (($gi->databaseType == GEOIP_ORG_EDITION)
1502 || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
1503 || ($gi->databaseType == GEOIP_ISP_EDITION)
1504 || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
1505 || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
1506 || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
1508 $gi->record_length = ORG_RECORD_LENGTH;
1513 fseek($gi->filehandle, -4, SEEK_CUR);
1516 if (($gi->databaseType == GEOIP_COUNTRY_EDITION) ||
1517 ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) ||
1518 ($gi->databaseType == GEOIP_PROXY_EDITION) ||
1519 ($gi->databaseType == GEOIP_NETSPEED_EDITION)
1521 $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
1523 fseek($gi->filehandle, $filepos, SEEK_SET);
1531 $gi->flags = $flags;
1532 if ($gi->flags & GEOIP_SHARED_MEMORY) {
1533 $gi->shmid = @shmop_open(GEOIP_SHM_KEY, "a", 0, 0);
1535 $gi->filehandle = fopen($filename, "rb") or die("Can not open $filename\n");
1536 if ($gi->flags & GEOIP_MEMORY_CACHE) {
1537 $s_array = fstat($gi->filehandle);
1538 $gi->memory_buffer = fread($gi->filehandle, $s_array['size']);
1548 if ($gi->flags & GEOIP_SHARED_MEMORY) {
1552 return fclose($gi->filehandle);
1581 return $gi->GEOIP_COUNTRY_CODES[$country_id];
1590 return $gi->GEOIP_COUNTRY_CODES[$country_id];
1599 return $gi->GEOIP_COUNTRY_NAMES[$country_id];
1608 return $gi->GEOIP_COUNTRY_NAMES[$country_id];
1616 return _geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
1622 return _geoip_seek_country($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
1629 return $gi->GEOIP_COUNTRY_CODES[$country_id];
1636 if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
1639 return $record->country_code;
1644 return $gi->GEOIP_COUNTRY_CODES[$country_id];
1654 return $gi->GEOIP_COUNTRY_NAMES[$country_id];
1661 if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
1663 return $record->country_name;
1667 return $gi->GEOIP_COUNTRY_NAMES[$country_id];
1681 for ($depth = 127; $depth >= 0; --$depth) {
1682 if ($gi->flags & GEOIP_MEMORY_CACHE) {
1684 $gi->memory_buffer,
1685 2 * $gi->record_length * $offset,
1686 2 * $gi->record_length
1688 } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
1690 $gi->shmid,
1691 2 * $gi->record_length * $offset,
1692 2 * $gi->record_length
1695 fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
1697 $buf = fread($gi->filehandle, 2 * $gi->record_length);
1699 $x = array(0, 0);
1701 for ($j = 0; $j < $gi->record_length; ++$j) {
1702 $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
1706 $bnum = 127 - $depth;
1710 if ($x[1] >= $gi->databaseSegments) {
1711 return $x[1];
1713 $offset = $x[1];
1715 if ($x[0] >= $gi->databaseSegments) {
1716 return $x[0];
1718 $offset = $x[0];
1721 trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
1728 for ($depth = 31; $depth >= 0; --$depth) {
1729 if ($gi->flags & GEOIP_MEMORY_CACHE) {
1731 $gi->memory_buffer,
1732 2 * $gi->record_length * $offset,
1733 2 * $gi->record_length
1735 } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
1737 $gi->shmid,
1738 2 * $gi->record_length * $offset,
1739 2 * $gi->record_length
1742 fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
1744 $buf = fread($gi->filehandle, 2 * $gi->record_length);
1746 $x = array(0, 0);
1748 for ($j = 0; $j < $gi->record_length; ++$j) {
1749 $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
1753 if ($x[1] >= $gi->databaseSegments) {
1754 return $x[1];
1756 $offset = $x[1];
1758 if ($x[0] >= $gi->databaseSegments) {
1759 return $x[0];
1761 $offset = $x[0];
1764 trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
1770 $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments;
1771 if ($gi->flags & GEOIP_SHARED_MEMORY) {
1772 $org_buf = @shmop_read($gi->shmid, $record_pointer, MAX_ORG_RECORD_LENGTH);
1774 fseek($gi->filehandle, $record_pointer, SEEK_SET);
1775 $org_buf = fread($gi->filehandle, MAX_ORG_RECORD_LENGTH);
1784 if ($seek_org == $gi->databaseSegments) {
1793 if ($seek_org == $gi->databaseSegments) {
1825 if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
1826 $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV0;
1829 $region = chr(($seek_region - 1000) / 26 + 65) . chr(($seek_region - 1000) % 26 + 65);
1831 $country_code = $gi->GEOIP_COUNTRY_CODES[$seek_region];
1835 } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
1836 $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV1;
1842 … $region = chr(($seek_region - US_OFFSET) / 26 + 65) . chr(($seek_region - US_OFFSET) % 26 + 65);
1845 …$region = chr(($seek_region - CANADA_OFFSET) / 26 + 65) . chr(($seek_region - CANADA_OFFSET) % 26 …
1847 $country_code = $gi->GEOIP_COUNTRY_CODES[($seek_region - WORLD_OFFSET) / FIPS_RANGE];
1871 mb_internal_encoding('ISO-8859-1');