J'ai besoin d'obtenir l'adresse IP locale de l'ordinateur comme 192. * .... Est-ce possible avec PHP?
J'ai besoin de l'adresse IP du système exécutant le script, mais je n'ai pas besoin de l'adresse IP externe, j'ai besoin de l'adresse de sa carte réseau locale.
php
ip-address
air
la source
la source
la source
getHostName
ne renvoie donc pas le nom de domaine du site.Ceci est un ancien message, mais obtenez-le avec ceci:
Par exemple:
Trouvé sur un autre site, ne supprimez pas la commande trim car sinon vous obtiendrez le nom de l'ordinateur.
BACKTICKS (Les guillemets spéciaux): Cela fonctionne parce que PHP tentera d'exécuter tout ce qui se trouve entre ces "guillemets spéciaux" (backticks) comme une commande shell et renvoie le résultat obtenu.
Est très similaire (mais beaucoup plus efficace) que de faire:
la source
gethostbyname
de renvoyer une adresse IP de bouclage (par exemple 127.0.0.1) pour la machine hôte.essayez ceci (si votre serveur est Linux):
la source
eth0
l'interface appropriée.wlan0
placeeth0
et remplacer'inet addr:'
par'inet adr:'
, probablement en raison de la locale utilisée sur mon système (fr_FR). A part ça, cette réponse était la solution que je recherchais. Merci!'inet adr:'
fonctionné dans mon terminal (langue française), mais dans le script PHP'inet addr:'
était la valeur correcte (locale anglaise, je suppose).L'adresse IP externe par défaut de la machine locale peut être obtenue comme ceci:
Comment ça fonctionne:
Puisque c'est UDP,
socket_connect
ne sort pas sur le réseau. Il attribue uniquement une adresse et un port locaux au socket. Cela nous permet d'obtenir l'adresse locale.Cette solution fonctionne sans trafic réseau, DNS ou exécution de commande.
Cela peut ne pas fonctionner s'il n'y a pas d'itinéraire vers
8.8.8.8
(par exemple, vous n'avez pas de connexion Internet).la source
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_connect($sock, $this->getDockerMachineIp(), 53);
sockets
module doit être installé et activé sur PHP.Cela dépend de ce que vous entendez par local:
Si par local vous entendez l'adresse du serveur / système exécutant le code PHP, alors il y a encore deux pistes à discuter. Si PHP est exécuté via un serveur Web, vous pouvez obtenir l'adresse du serveur en lisant
$_SERVER['SERVER_ADDR']
. Si PHP est exécuté via une interface de ligne de commande, vous devrez probablement exécuter le shellipconfig
(Windows) /ifconfig
(* nix) et extraire l'adresse.Si par local, vous entendez l'adresse distante du visiteur du site Web, mais pas son adresse IP externe (puisque vous avez spécifiquement dit 192. *), alors vous n'avez pas de chance. L'intérêt du routage NAT est de cacher cette adresse. Vous ne pouvez pas identifier les adresses locales des ordinateurs individuels derrière une adresse IP, mais il existe quelques astuces (agent utilisateur, éventuellement adresse mac) qui peuvent aider à différencier s'il y a plusieurs ordinateurs accédant à partir de la même IP.
la source
hostname (1) peut indiquer l'adresse IP:,
hostname --ip-address
ou comme le dit l'homme, il vaut mieux utiliserhostname --all-ip-addresses
la source
Vous pouvez essayer ceci en tant qu'utilisateur régulier dans la CLI sur l'hôte Linux:
Production:
la source
array('bond0'=>'10.66.42.83','bond1'=>'hosting Ip address','lo'=>'127.0.0.1', )
J'ai ça. J'ai ajouté ce code dans un fichier php,split()
La fonction a été obsolète depuis PHP 5.3.0. alors suggérez d'utiliser à laexplode()
placeJ'ai essayé sur PC Windows et cela a fonctionné et je pense également que cela fonctionnera sous Linux.
la source
C'est très simple et les réponses ci-dessus compliquent les choses. Vous pouvez simplement obtenir des adresses IP locales et publiques en utilisant cette méthode.
la source
C'est facile. Vous pouvez obtenir le nom d'hôte par ce simple code.
Ou vous pouvez également utiliser
$_SERVER['HTTP_HOST']
pour obtenir le nom d'hôte.la source
J'ai tripoté cette question pour un php côté serveur (fonctionnant à partir d'un terminal Linux)
J'ai explosé 'ifconfig' et l'ai réduit à l'adresse IP.
C'est ici:
Et bien sûr, remplacez «wlan0» par le périphérique réseau souhaité.
Ma sortie est:
la source
Si vous êtes dans un environnement de développement sur OS X, connecté via Wifi:
la source
Cela a fonctionné pour moi.
la source
PHP_SELF
Renvoie le nom de fichier du script courant avec le chemin relatif à la racineSERVER_PROTOCOL
Renvoie le nom et la révision du protocole demandé par la pageREQUEST_METHOD
Renvoie la méthode de requête utilisée pour accéder à la pageDOCUMENT_ROOT
Renvoie le répertoire racine sous lequel le script actuel s'exécutela source
Essaye ça
la source