c++怎么确定用户登陆是否错误

c++如何确定用户登陆是否异常
请问c++如何实现通过ip地址查询用户登陆位置是否异常。
------解决思路----------------------
需要IP数据库
------解决思路----------------------
能过ip数据库得出ip所在地址,对比上一次地址,两地的距离,计算两地交通需要多长时间,如果登陆间隔比交通时间要小,则是异常。
------解决思路----------------------
使用ip地址查询不好判断,除非当ip地址不在同一城市时提醒用户异地登录