UserHostAddress дает неправильного дюйм/с

Вам не нужно обновлять всю карту, но только маркеры водителей (или, если быть более точным, не целые маркеры, а только их позиции)

Я использую собственный пример Google и поместите туда несколько маркеров, позиции которых обновляются в случайном месте каждую секунду.

//random locations
var latArr = [-20.363882, -21.363882, -22.363882, -23.363882, -24.363882, -25.363882, -26.363882, -27.363882, -28.363882, -29.363882];
var lngArr = [125.044922, 126.044922, 127.044922, 128.044922, 129.044922, 130.044922, 131.044922, 132.044922, 133.044922, 134.044922];
//global array to hold all markers
var markersArr = [];
//map init from google example
function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: {lat: -25.363882, lng: 131.044922}
  });
  //create markers
  var marker1 = new google.maps.Marker({
    position: map.getCenter(),
    icon: {
      path: google.maps.SymbolPath.CIRCLE,
      scale: 10
    },
    draggable: true,
    map: map
  });
   var marker2 = new google.maps.Marker({
    position: map.getCenter(),
    icon: {
      path: google.maps.SymbolPath.BACKWARD_CLOSED_ARROW,
      scale: 5
    },
    draggable: true,
    map: map
  });
  markersArr.push(marker1);
  markersArr.push(marker2);
}
//function to change markers locations
function renewMarkers(){
	for(i=0; i
#map {
  height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}


11
задан Tomalak 14 October 2008 в 13:28
поделиться

5 ответов

Это похоже на работу обратного прокси. Когда Вы используете обратный прокси, клиентские подключения к прокси, который самому открывает новое соединение с Вашим сервером. Начиная с использования ASP.NET infos входящего соединения для заполнения пользовательского адреса Вы получаете адрес обратного прокси.

Если Вы будете действительно в этой конфигурации, то Вы будете нуждаться в помощи от обратного прокси для получения правильной информации. Большинство обратных прокси предлагает возможность добавить заголовок к Запросу HTTP с реальным IP-адресом клиента. Проверьте документацию своего прокси.

10
ответ дан 3 December 2019 в 01:13
поделиться

Вы могли бы хотеть к чему-то вроде этого;

string SourceIP = String.IsNullOrEmpty(Request.ServerVariables["HTTP_X_FORWARDED_FOR"]) ? Request.ServerVariables["REMOTE_ADDR"] : Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",")[0];

Заголовок HTTP_X_FORWARDED_FOR получает IP-адрес позади прокси-серверов.

Посмотрите эту страницу, которая объясняет почему более подробно; Получение Реального IP Пользователей

26
ответ дан 3 December 2019 в 01:13
поделиться

Я предполагаю, что Вы находитесь позади Прокси NAT/реверса, таким образом, я думаю, что необходимо использовать:

Request.ServerVariables("REMOTE_ADDR") 

Наиболее вероятным 172.16.0.0/12 является Ваша частная LAN, где 172.16.16.248 Ваш собственный адрес и 172.16.16.1 адрес Вашего маршрутизатора/прокси.

1
ответ дан 3 December 2019 в 01:13
поделиться

Два адреса, которые Вы перечислили, существуют от одного из диапазонов, определенных как являющийся частным. (см. здесь для описания),

Это звучит больше как, Вы берете внутренний адрес своего собственного брандмауэра (брандмауэров)?

0
ответ дан 3 December 2019 в 01:13
поделиться

Request.ServerVariables ("REMOTE_ADDR") не работает. эта проблема связана с тем, что ur-сервер, вероятно, находится за каким-то прокси. (или подключен к Интернету через какую-либо сеть), или настройки вашего маршрутизатора установлены как NAT (преобразование сетевых адресов), этот метод не передает ip на сервер. в таких ситуациях вы не можете получить IP-адрес с помощью Asp.net однако апплет Java Provide, с помощью которого вы можете получить IP-адрес в любом случае.

(только для Netscape, Mozilla и Firefox, и Java должна быть включена)

<script language="javascript" type="text/javascript">   

if (navigator.appName.indexOf("Netscape") != -1){
ip = "" + java.net.InetAddress.getLocalHost().getHostAddress();
document.write("<b>Your IP address is " + ip+'</b>');
}
else {
document.write("<b>IP Address only shown in Netscape with Java enabled!</b>");
}

</script>
1
ответ дан 3 December 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: