VisitorParser.js
- Aleksej
- Автор темы
- Не в сети
- Модератор
Less
Больше
7 года 11 мес. назад - 7 года 11 мес. назад #1
от Aleksej
Aleksej создал тему: VisitorParser.js
Два скрипта, использованные, соответственно, в демках статей
Геолокация по ip. VisitorParser.js
и
VisitorParser.js on Google maps
.
P.S. Разумеется, если будете использовать в качестве модуля странички, все html, body и head оптимально исключить.
Code:
<style type="text/css"> code {color: red;} </style>
<ul id="info"></ul>
<script src="visitor-parser.js"></script>
<script>
var visitor = new visitorParser();
var info = visitor.getInfo();
var html = '';
if(info.geo.ip != ''){
html += '<li><b>Your IP address</b><br><code>' + info.geo.ip + '</code>';
html += (info.geo.city != '' || info.geo.country != '' ? ' tells visitorParser.js that you are from' : '');
html += (info.geo.city != '' ? ' around <code>' + info.geo.city + '</code>,' : '');
html += (info.geo.country != '' ? ' <code>' + info.geo.country + '</code>' : '');
html += (info.geo.provider != '' ? ' using the provider <code>' + info.geo.provider + '</code>' : '');
html += '.</li>';
}
html += '<li><b>Date of last visit</b><br>This seems to be your 2nd visit to the visitorParser.js website. Your last visit was on <code>' + info.ua.date + '</code>. Nice to see you again!</li>';
if(info.ua.referring.url != ''){
html += '<li><b>Referring website</b><br>You have been referred to this website by <code>' + info.ua.referring.host + '</code>.</li>';
}
if(info.ua.processor.name != '' || info.ua.platform.name != ''){
html += '<li><b>Platform or operating system</b><br>';
html += 'On <code>' + (info.ua.platform.name != '' ? info.ua.platform.name : 'n/a') + ' ' + (info.ua.platform.version != undefined ? info.ua.platform.version : '') + '</code> with processor <code>' + (info.ua.processor.name != '' ? info.ua.processor.name : 'n/a') + '</code>.';
html += '</li>';
}
html += '<li><b>Browser, engine and resolution</b><br>You seem to be using <code>' + (info.ua.browser.name != '' ? info.ua.browser.name : 'n/a') + ' ' + (info.ua.browser.version != undefined ? info.ua.browser.version : '') + '</code> and engine <code>' + (info.ua.engine.name != '' ? info.ua.engine.name : 'n/a') + ' ' + (info.ua.engine.version != undefined ? info.ua.engine.version : '') + '</code> with a resolution of <code>' + info.ua.resolution.width + '</code>x<code>' + info.ua.resolution.height + '</code> pixels.</li>';
if(info.ua.mobile.name != ''){
html += '<li><b>Mobile device</b><br>';
html += 'You are using a <code>' + info.ua.mobile.name + ' ' + (info.ua.mobile.version != undefined ? info.ua.mobile.version : '') + '</code>.';
html += '</li>';
}
document.getElementById('info').innerHTML = html;
</script>
Code:
<html>
<head>
<title>Info by ip</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
width: 100%;
height: 500px;
}
</style>
<script src="visitor-parser.js"></script>
<script>
var visitor = new visitorParser();
var info = visitor.getInfo();
</script>
</head>
<body>
<div id="map"></div>
<script>
function initMap() {
var point = {lat: info.geo.lat, lng: info.geo.lon};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 3,
center: point
});
var contentString = '<p>' + info.geo.ip + '</p>' + '<p>' + info.geo.provider + '</p>' + '<p>' + info.geo.city + '</p>' +'<p>' +info.geo.country + '</p>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: point,
map: map,
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
infowindow.open(map,marker);
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAPS_API_KEY&callback=initMap"
async defer></script>
</body>
</html>
P.S. Разумеется, если будете использовать в качестве модуля странички, все html, body и head оптимально исключить.
Последнее редактирование: 7 года 11 мес. назад пользователем Aleksej.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- grease monkey
- Не в сети
- Осваиваюсь на форуме
Less
Больше
- Сообщений: 39
- Спасибо получено: 1
7 года 11 мес. назад #2
от grease monkey
grease monkey ответил в теме VisitorParser.js
как добиться чтобы на google-картах информационное окно маркера было сразу раскрыто (чтоб не кликать по маркеру) ?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- serge
- Не в сети
- Модератор
Less
Больше
- Сообщений: 993
- Спасибо получено: 149
7 года 11 мес. назад #3
от serge
В документации Google Maps JavaScript API отсутствует описание этой возможности. Каждый выходит из положения как может. В данном примере вместо дефолтного:
использована такая вставка:
А я смогу! - А поглядим! - А я упрямый!
serge ответил в теме VisitorParser.js
grease monkey пишет: как добиться чтобы на google-картах информационное окно маркера было сразу раскрыто (чтоб не кликать по маркеру) ?
В документации Google Maps JavaScript API отсутствует описание этой возможности. Каждый выходит из положения как может. В данном примере вместо дефолтного:
Code:
var marker = new google.maps.Marker({
position: point,
map: map,
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}
использована такая вставка:
Code:
var marker = new google.maps.Marker({
position: point,
map: map,
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
infowindow.open(map,marker);
}
А я смогу! - А поглядим! - А я упрямый!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Sutasu
- Не в сети
- Новый участник
Less
Больше
- Сообщений: 1
- Спасибо получено: 0
7 года 9 мес. назад #4
от Sutasu
Sutasu ответил в теме VisitorParser.js
Здравствуйте!
Не подскажите, есть ли возможность на основе данного скрипта прописать редирект в .htaccess с основного домена на региональные поддомены (в нашем примере msk.mysite.ru и spb.mysite.ru) по ip входящего пользователя? Geoip у нашего хостинга не подключено, поэтому ищем какие-то пути решения, параллельно изучая html и js
Не подскажите, есть ли возможность на основе данного скрипта прописать редирект в .htaccess с основного домена на региональные поддомены (в нашем примере msk.mysite.ru и spb.mysite.ru) по ip входящего пользователя? Geoip у нашего хостинга не подключено, поэтому ищем какие-то пути решения, параллельно изучая html и js
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- serge
- Не в сети
- Модератор
Less
Больше
- Сообщений: 993
- Спасибо получено: 149
7 года 9 мес. назад - 7 года 9 мес. назад #5
от serge
А я смогу! - А поглядим! - А я упрямый!
serge ответил в теме VisitorParser.js
Здравствуйте, Sutasu. Да можно, конечно... все можно при желании. Только вряд ли нужно, это ведь js, и выполняется он на компе пользователя, а не на сервере. Поэтому не нужно городить огород, воспользуйтесь, скажем,
MaxMind или Sypex Geo
(лучше MaxMind, второй месяц нет обновлений базы для Sypex Geo, и в этом смысле американский сервис представляется более надежным). Или любая другая база геоданных, коим несть числа. Одним словом, используйте для вашей цели API, написанное на php, а не джаваскрипты. В разделе
IP Geolocation
гляньте примеры кода.
А я смогу! - А поглядим! - А я упрямый!
Последнее редактирование: 7 года 9 мес. назад пользователем serge.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Aleksej
- Автор темы
- Не в сети
- Модератор
7 года 9 мес. назад #6
от Aleksej
Серый, а это не ты ли готовый js показывал для перенаправления трафика?
Т.е. он был "готовый", на тот момент, надо пояснить... с тех пор MaxMind в бесплатной версии более не предоставляет халявный js в Сети.
Aleksej ответил в теме VisitorParser.js
serge пишет: Только вряд ли нужно, это ведь js, и выполняется он на компе пользователя, а не на сервере.
Серый, а это не ты ли готовый js показывал для перенаправления трафика?
Т.е. он был "готовый", на тот момент, надо пояснить... с тех пор MaxMind в бесплатной версии более не предоставляет халявный js в Сети.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- serge
- Не в сети
- Модератор
Less
Больше
- Сообщений: 993
- Спасибо получено: 149
7 года 9 мес. назад #7
от serge
А я смогу! - А поглядим! - А я упрямый!
serge ответил в теме VisitorParser.js
Я, это был я... только давно это было, да и "прописать редирект в .htaccess" с помощью подобного скрипта невозможно.
А я смогу! - А поглядим! - А я упрямый!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.