getIpInfo function gets ip geoinfo

This commit is contained in:
Alex Janka 2017-06-02 20:43:16 +10:00
parent 340829b6c9
commit 2c1956312a

View file

@ -1,5 +1,10 @@
import express = require('express');
import expresshb = require('express-handlebars');
import http = require('http');
import https = require('https');
import promise = require('promise');
import { IPGeoJson } from './ip_geo';
var app = express();
@ -8,6 +13,47 @@ app.set('view engine', 'handlebars');
app.get('/', function (req, res) {
res.render('home');
getIpInfo("::ffff:" + "119.17.156.106").country; //replace with req.ip
});
app.listen(3000);
function getIpInfo(ip: String): IPGeoJson {
var ipinfo: IPGeoJson = {
ip: "",
city: "",
region: "",
country: "",
loc: "",
postal: ""
};
var options = {
host: 'ipinfo.io',
port: 443,
path: '/' + ip + '/geo',
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}
console.log(options.path);
var callback = function (response: http.IncomingMessage) {
var str: string;
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function () {
console.log(str);
ipinfo = <IPGeoJson>JSON.parse(str.slice(9));
console.log(ipinfo.city);
});
}
https.get(options, callback);
return ipinfo;
}