{"id":66,"date":"2009-11-08T20:00:19","date_gmt":"2009-11-08T11:00:19","guid":{"rendered":"http:\/\/www.kuroneko-square.net\/articles\/?p=66"},"modified":"2009-11-19T13:43:37","modified_gmt":"2009-11-19T04:43:37","slug":"20091108","status":"publish","type":"post","link":"https:\/\/www.kuroneko-square.net\/articles\/20091108","title":{"rendered":"GeoIP \u7528\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u30b9\u30af\u30ea\u30d7\u30c8"},"content":{"rendered":"<p>\u3061\u3087\u3063\u3068\u3057\u305f\u74b0\u5883\u5909\u6570\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u7c21\u5358\u306a<a href=\"http:\/\/www.kuroneko-square.net\/services\/evc\/\">ENV Checker<\/a>\u3092\u7f6e\u3044\u3066\u307f\u305f\u306e\u3067\u3059\u304c\u3001\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u63a5\u7d9a\u5143\u5730\u57df\u306e\u5224\u5b9a\u3082\u5165\u308c\u3066\u3042\u308a\u307e\u3059\u3002<\/p>\r\n<p>\u305f\u3060\u3057\u3001IP\u30a2\u30c9\u30ec\u30b9\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u6301\u3064\u306e\u306f\u5927\u5909\u306a\u306e\u3067\u3001<a href=\"http:\/\/www.maxmind.com\/\">MaxMind<\/a>\r\n\u793e\u304c\u914d\u5e03\u3057\u3066\u3044\u308b\r\n<a href=\"http:\/\/www.maxmind.com\/app\/geoip_country\">GeoLite Country<\/a>\u3092\u5229\u7528\u3055\u305b\u3066\u3044\u305f\u3060\u3044\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u30c7\u30fc\u30bf\u306f\u6bce\u6708\u66f4\u65b0\u3055\u308c\u308b\u3088\u3046\u306a\u306e\u3067\u3001<a href=\"http:\/\/flatray.com\/geoip\/\">GeoIP\u306e\u5229\u7528\u65b9\u6cd5<\/a>\u306e\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u53c2\u8003\u306b\u3001\u904e\u53bb2\u30f6\u6708\u5206\u3092\u6b8b\u3057\u3001\u305d\u308c\u3088\u308a\u524d\u306e\u30c7\u30fc\u30bf\u3092\u524a\u9664\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n<div class=\"codecolorer-container bash default\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/><\/div><\/td><td><div class=\"bash codecolorer\"><span class=\"co0\">#! \/bin\/sh<\/span><br \/>\n<br \/>\n<span class=\"co0\"># Remains at least these months<\/span><br \/>\n<span class=\"re2\">keepmonth<\/span>=<span class=\"nu0\">2<\/span><br \/>\n<br \/>\n<span class=\"re2\">TMPDIR<\/span>=<span class=\"re1\">$HOME<\/span><span class=\"sy0\">\/<\/span>tmp<br \/>\n<span class=\"re2\">GEODIR<\/span>=<span class=\"re1\">$HOME<\/span><span class=\"sy0\">\/<\/span>share<span class=\"sy0\">\/<\/span>GeoIP<br \/>\n<span class=\"re2\">DAT<\/span>=GeoIP.dat<br \/>\n<br \/>\n<span class=\"co0\"># Get timestamp<\/span><br \/>\n<span class=\"re2\">timestamp<\/span>=<span class=\"sy0\">`<\/span><span class=\"kw2\">date<\/span> +<span class=\"sy0\">%<\/span>Y<span class=\"sy0\">%<\/span>m<span class=\"sy0\">`<\/span><br \/>\n<span class=\"re2\">old_date<\/span>=<span class=\"sy0\">`<\/span><span class=\"kw2\">date<\/span> <span class=\"st0\">&quot;-d<span class=\"es2\">$keepmonth<\/span> months ago&quot;<\/span> +<span class=\"sy0\">%<\/span>Y<span class=\"sy0\">%<\/span>m<span class=\"sy0\">`<\/span><br \/>\n<br \/>\n<span class=\"kw3\">cd<\/span> <span class=\"re1\">$TMPDIR<\/span><br \/>\n<br \/>\n<span class=\"co0\">#\/usr\/bin\/wget http:\/\/www.maxmind.com\/download\/geoip\/database\/$DAT.gz<\/span><br \/>\n<span class=\"sy0\">\/<\/span>usr<span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span><span class=\"kw2\">wget<\/span> http:<span class=\"sy0\">\/\/<\/span>geolite.maxmind.com<span class=\"sy0\">\/<\/span>download<span class=\"sy0\">\/<\/span>geoip<span class=\"sy0\">\/<\/span>database<span class=\"sy0\">\/<\/span>GeoLiteCountry<span class=\"sy0\">\/<\/span><span class=\"re1\">$DAT<\/span>.gz<br \/>\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#91;<\/span> <span class=\"re4\">$?<\/span> <span class=\"sy0\">!<\/span>= <span class=\"nu0\">0<\/span> <span class=\"br0\">&#93;<\/span> ; <span class=\"kw1\">then<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw3\">echo<\/span> <span class=\"st0\">&quot;wget failed&quot;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw3\">exit<\/span> <span class=\"nu0\">1<\/span><br \/>\n<span class=\"kw1\">fi<\/span><br \/>\n<br \/>\n<span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span><span class=\"kw2\">gunzip<\/span> <span class=\"re1\">$DAT<\/span>.gz<br \/>\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#91;<\/span> <span class=\"re4\">$?<\/span> <span class=\"sy0\">!<\/span>= <span class=\"nu0\">0<\/span> <span class=\"br0\">&#93;<\/span> ; <span class=\"kw1\">then<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw3\">echo<\/span> <span class=\"st0\">&quot;gunzip failed&quot;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw3\">exit<\/span> <span class=\"nu0\">2<\/span><br \/>\n<span class=\"kw1\">fi<\/span><br \/>\n<br \/>\n<span class=\"kw3\">cd<\/span> <span class=\"re1\">$GEODIR<\/span><br \/>\n<span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span><span class=\"kw2\">mv<\/span> <span class=\"re1\">$DAT<\/span> <span class=\"re1\">$DAT<\/span>.<span class=\"re1\">$timestamp<\/span><br \/>\n<span class=\"sy0\">\/<\/span>bin<span class=\"sy0\">\/<\/span><span class=\"kw2\">mv<\/span> <span class=\"re1\">$TMPDIR<\/span><span class=\"sy0\">\/<\/span><span class=\"re1\">$DAT<\/span> .<br \/>\n<br \/>\n<span class=\"re2\">rmfile<\/span>=<span class=\"re1\">$DAT<\/span>.<span class=\"re1\">$old_date<\/span><br \/>\n<br \/>\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#91;<\/span> <span class=\"re5\">-e<\/span> <span class=\"re1\">$rmfile<\/span> <span class=\"br0\">&#93;<\/span>; <span class=\"kw1\">then<\/span><br \/>\n<span class=\"kw2\">rm<\/span> <span class=\"re5\">-f<\/span> <span class=\"re1\">$rmfile<\/span><br \/>\n<span class=\"kw1\">fi<\/span><br \/>\n<br \/>\n<span class=\"kw3\">exit<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n<p>1\u30f6\u6708\u3054\u3068\u306bcron\u3092\u56de\u305b\u3070\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u81ea\u52d5\u66f4\u65b0\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u3001\u3044\u308f\u3086\u308b\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u30d5\u30ea\u30fc\u306b\u306a\u308a\u307e\u3059\u3002<\/p>","protected":false},"excerpt":{"rendered":"GeoLite Country\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306f1\u30f6\u6708\u3054\u3068\u306b\u66f4\u65b0\u3055\u308c\u308b\u306e\u3067\u3001\u904e\u53bb2\u30f6\u6708\u5206\u3092\u6b8b\u3057\u3001\u305d\u308c\u4ee5\u524d\u3092\u524a\u9664\u3059\u308b\u3068\u3044\u3046\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u305f\u3002","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[14,48,7,49],"class_list":["post-66","post","type-post","status-publish","format-standard","hentry","category-blog","tag-cron","tag-ip","tag-7","tag-49"],"_links":{"self":[{"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/posts\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/comments?post=66"}],"version-history":[{"count":0,"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/posts\/66\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/media?parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/categories?post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kuroneko-square.net\/articles\/wp-json\/wp\/v2\/tags?post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}