开发者

Convert code from PHP to Ruby on Rails

开发者 https://www.devze.com 2022-12-18 10:35 出处:网络
I\'m trying to use geoip\'s web service for a ruby on rails application.They don\'t give any ruby demos but this is what they give for PHP.I was wondering if anyone knew how to convert this to work on

I'm trying to use geoip's web service for a ruby on rails application. They don't give any ruby demos but this is what they give for PHP. I was wondering if anyone knew how to convert this to work on ruby on rails? I only need the city and the region from the data. More examples can be found at their site at

$query = "http://geoip3.maxmind.com/b?l=" . $license_key . "&i=" . $ipaddress;
$url = parse_url($query);
$host = $url["host"];
$path = $url["path"] . "?" . $url["query"];
$timeout = 1;
$fp = fsockopen ($host, 80, $errno, $errst开发者_如何转开发r, $timeout)
or die('Can not open connection to server.');
if ($fp) {
  fputs ($fp, "GET $path HTTP/1.0\nHost: " . $host . "\n\n");
  while (!feof($fp)) {
    $buf .= fgets($fp, 128);
  }
  $lines = split("\n", $buf);
  $data = $lines[count($lines)-1];
  fclose($fp);
} else {
  # enter error handing code here
}

echo $data;
$geo = explode(",",$data);
$country = $geo[0];
$state = $geo[1];
$city = $geo[2];
$lat = $geo[3];
$lon = $geo[4];


I don't have a geoip license key so cannot test it fully, but this should work:

require 'net/http'

url = 'http://geoip3.maxmind.com/b?l=%s&i=%s' % [license_key, ip_address]
res = Net::HTTP.get_response(URI.parse(url))

lines = res.body.split("\n")

geo = lines[-1].split(',')

country = geo[0]
state = geo[1]
city = geo[2]
lat = geo[3]
lon = geo[4]
0

精彩评论

暂无评论...
验证码 换一张
取 消