Как получить IP-адрес Вашего сервера приложений

Я должен смочь найти IP-адрес сервера, на котором в настоящее время выполняется страница. У меня есть некоторый код, который называет сторонний сайт и должен передать определенный ключ, который изменяется, в зависимости от которого сервера он идет. Существует ли переменная CGI или некоторый путь в ColdFusion для определения то, что IP-адрес имеет хост-сервер?

5
задан Jon Seigel 26 April 2010 в 23:01
поделиться

5 ответов

Я бы использовал hostip.info API
Ваш IP в XML: http://api.hostip.info/get_xml .php
Ваш IP в HTML: http://api.hostip.info/get_html.php

2
ответ дан 18 December 2019 в 13:12
поделиться

Как отметили другие комментаторы, если вам нужен внешний IP-адрес, как его видит сторонний сайт, вам, вероятно, следует использовать внешние подходы, которые они рекомендуют.

Однако, если третья сторона предоставляет вам доступ в той или иной форме, основанной на фактическом IP-адресе, который видит сервер, а не на том IP-адресе, который они видят, вы можете использовать

 <cfset cName = CreateObject("java", "java.net.InetAddress").getLocalHost().getHostAddress()>

 <cfdump var="#cName#">
5
ответ дан 18 December 2019 в 13:12
поделиться

Есть две причины, по которым программа не может запросить хост, на котором она запущена, и узнать его IP-адрес:

  1. У нее может быть несколько IP-адресов, и если не просматривать всевозможные структуры данных ядра, вы вряд ли узнаете, какая из них будет использоваться для данного исходящего соединения.

  2. Он может подключаться к внешнему миру через брандмауэр NAT или какой-либо прокси-сервер, чтобы внешний мир увидел IP-адрес, отличный от любого из настроенных на вашем компьютере.

На самом деле, их может быть больше, чем этих двух, но это те, которые приходили мне в голову.

По этой причине самый простой способ - подключиться к другому устройству где-нибудь за пределами вашей корпоративной сети и посмотреть, какой IP-адрес, по его мнению, у вас есть. Я использую двухстрочный сценарий CGI, работающий на моем устройстве Colo Box, чтобы определить, какой IP-адрес у моего домашнего сервера в настоящее время (чтобы я мог определить, когда кабельная компания меняет его).

4
ответ дан 18 December 2019 в 13:12
поделиться

Самым безопасным способом будет использование такой службы, как WhatIsMyIP . Если сервер находится за NAT, то ОС не знает внешний IP-адрес.

В SO есть много вопросов по этому поводу, см., Например, здесь .

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

Вы можете использовать CGI.LOCAL_ADDR для определения IP-адреса вашего сервера (CFML эквивалент PHP $_SERVER["SERVER_ADDR"]). Это работает на IIS и Apache с использованием ColdFusion или Railo, если вы не находитесь за прокси-сервером, не прописываете IP вашего сервера и имеете только один IP, назначенный вашему серверу (не уверен, какой IP будет показан, если их несколько).

2
ответ дан 18 December 2019 в 13:12
поделиться
Другие вопросы по тегам:

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