<?php

namespace app\controller;

use App\model\Ip2locationDb11Model;
use itbdw\Ip\IpLocation;
use support\Db;
use support\Request;

class Index
{
    public function index(Request $request, $checkIp = null)
    {
        $ip = $request->getRealIp();

        if ($checkIp) {
            $ip = gethostbyname($checkIp);
        }

        $filepath = '/usr/src/myapp/lib/qqwry.dat';

        $location = IpLocation::getLocation($ip, $filepath);

        return json(['ip' => $ip, 'location' => $location]);
    }

    public function location(Request $request, $checkIp = null)
    {
        $ip = $request->getRealIp();

        if ($checkIp) {
            $ip = gethostbyname($checkIp);
        }

        $ipNum = ip2long($ip);


        $record = Ip2locationDb11Model::query()->where(
            'ip_from', '<=', $ipNum
        )->where(
            'ip_to', '>=', $ipNum
        )->first();

        if ($record) {
            $record = $record->toArray();
        } else {
            $record = [];
        }

        return json(['ip' => $ip, 'record' => $record]);
    }
}
