Necesito obtener la IP local de una computadora como 192. * .... ¿Es esto posible con PHP?
Necesito la dirección IP del sistema que ejecuta el script, pero no necesito la IP externa, necesito la dirección de su tarjeta de red local.
php
ip-address
aire
fuente
fuente
fuente
getHostName
que no devuelve el nombre de dominio del sitio.Esta es una publicación antigua, pero consígala con esto:
Por ejemplo:
Lo encontré en otro sitio, no elimine el comando de recorte porque de lo contrario obtendrá el nombre de la computadora.
BACKTICKS (Las comillas especiales): funciona porque PHP intentará ejecutar lo que sea que esté entre esas "comillas especiales" (comillas inversas) como un comando de shell y devuelve la salida resultante.
Es muy similar (pero mucho más eficiente) que hacer:
fuente
gethostbyname
devolver una IP de bucle invertido (por ejemplo, 127.0.0.1) para la máquina host.intente esto (si su servidor es Linux):
fuente
eth0
sea la interfaz adecuada.wlan0
lugar deeth0
y reemplazar'inet addr:'
con'inet adr:'
, posiblemente debido a la configuración regional utilizada en mi sistema (fr_FR). Aparte de eso, esta respuesta fue la solución que estaba buscando. ¡Gracias!'inet adr:'
funcionó en mi terminal (configuración regional francesa), pero en el script PHP'inet addr:'
estaba el valor correcto (configuración regional en inglés, supongo).La dirección IP externa predeterminada de la máquina local se puede obtener así:
Cómo funciona:
Dado que es UDP,
socket_connect
no se conecta a la red. Solo asigna una dirección local y un puerto al socket. Esto nos permite obtener la dirección local.Esta solución funciona sin tráfico de red, DNS o ejecución de comandos.
Puede que no funcione si no hay una ruta hacia
8.8.8.8
(por ejemplo, no tiene conexión a Internet).fuente
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_connect($sock, $this->getDockerMachineIp(), 53);
sockets
módulo debe estar instalado y habilitado en PHP.Depende de lo que quieras decir con local:
Si por local te refieres a la dirección del servidor / sistema que ejecuta el código PHP, aún quedan dos vías por discutir. Si PHP se ejecuta a través de un servidor web, puede obtener la dirección del servidor leyendo
$_SERVER['SERVER_ADDR']
. Si PHP se está ejecutando a través de una interfaz de línea de comandos, entonces probablemente tendrá que ejecutar shellipconfig
(Windows) /ifconfig
(* nix) y extraer la dirección.Si por local te refieres a la dirección remota del visitante del sitio web, pero no a su dirección IP externa (ya que dijiste específicamente 192. *), entonces no tienes suerte. El objetivo del enrutamiento NAT es ocultar esa dirección. No puede identificar las direcciones locales de computadoras individuales detrás de una dirección IP, pero hay algunos trucos (agente de usuario, posiblemente dirección mac) que pueden ayudar a diferenciar si hay varias computadoras accediendo desde la misma IP.
fuente
hostname (1) puede indicar la dirección IP:,
hostname --ip-address
o como dice el hombre, es mejor usarhostname --all-ip-addresses
fuente
Puede intentar esto como usuario habitual en CLI en un host Linux:
Salida:
fuente
array('bond0'=>'10.66.42.83','bond1'=>'hosting Ip address','lo'=>'127.0.0.1', )
Tengo esto. Agregué este código en un archivo php,split()
La función ha sido DEPRECADA a partir de PHP 5.3.0. sugiera usar en suexplode()
lugarLo intenté en una PC con Windows y funcionó y también creo que funcionará en Linux.
fuente
Es muy simple y las respuestas anteriores están complicando las cosas. Simplemente puede obtener direcciones IP locales y públicas utilizando este método.
fuente
Es fácil. Puede obtener el nombre de host con este simple código.
O también puede usar
$_SERVER['HTTP_HOST']
para obtener el nombre de host.fuente
Jugué con esta pregunta para un php del lado del servidor (que se ejecuta desde la terminal de Linux)
Exploté 'ifconfig' y lo reduje a la dirección IP.
Aquí está:
Y, por supuesto, cambie 'wlan0' a su dispositivo de red deseado.
Mi salida es:
fuente
Si está en un entorno de desarrollo en OS X, conectado a través de Wifi:
fuente
Funcionó para mí.
fuente
PHP_SELF
Devuelve el nombre de archivo del script actual con la ruta relativa a la raízSERVER_PROTOCOL
Devuelve el nombre y la revisión del protocolo solicitado por la página.REQUEST_METHOD
Devuelve el método de solicitud utilizado para acceder a la página.DOCUMENT_ROOT
Devuelve el directorio raíz en el que se está ejecutando el script actual.fuente
Prueba esto
fuente