private static function getFlagStr($offset) { while (1) { fseek(self::$fp, $offset, SEEK_SET); $flag = ord(fgetc(self::$fp)); if ($flag == 1 || $flag == 2) { $buf = fread(self::$fp, 3); if ($flag == 2) { self::$CountryFlag = 2; self::$EndIpOff = $offset - 4; } $offset = ord($buf[0]) + ord($buf[1]) * 256 + ord($buf[2]) * 256 * 256; } else { break; } } if ($offset < 12) { return ''; } fseek(self::$fp, $offset, SEEK_SET); return self::getStr(); }