Preciso obter o IP local de um computador como 192. * .... Isso é possível com o PHP?
Preciso do endereço IP do sistema executando o script, mas não preciso do IP externo, preciso do endereço da placa de rede local dele.
php
ip-address
ar
fonte
fonte
fonte
getHostName
, não retorna o nome de domínio do site.Esta é uma postagem antiga, mas comece assim:
Por exemplo:
Encontrado em outro site, não remova o comando trim, pois caso contrário, você obterá o nome dos computadores.
BACKTICKS (as aspas especiais): Funciona porque o PHP tentará executar o que quer que esteja entre as "aspas especiais" (crases) como um comando shell e retorna a saída resultante.
É muito semelhante (mas muito mais eficiente) do que fazer:
fonte
gethostbyname
retornar um IP de loopback (por exemplo, 127.0.0.1) para a máquina host.tente isto (se o seu servidor for Linux):
fonte
eth0
é a interface apropriada.wlan0
vez deeth0
e substituir'inet addr:'
por'inet adr:'
, possivelmente devido ao local usado em meu sistema (fr_FR). Fora isso, essa resposta era a solução que eu procurava. Obrigado!'inet adr:'
funcionou bem no meu terminal (localidade francesa), mas no script PHP'inet addr:'
estava o valor correto (localidade inglês, eu acho).O endereço IP externo padrão da máquina local pode ser obtido desta forma:
Como funciona:
Por ser UDP,
socket_connect
não sai da rede. Ele apenas atribui um endereço local e uma porta ao soquete. Isso nos permite obter o endereço local.Esta solução funciona sem nenhum tráfego de rede, DNS ou execução de comandos.
Pode não funcionar se não houver rota para
8.8.8.8
(por exemplo, você não tem conexão com a Internet).fonte
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_connect($sock, $this->getDockerMachineIp(), 53);
sockets
módulo deve ser instalado e ativado no PHP.Depende do que você entende por local:
Se por local você quer dizer o endereço do servidor / sistema que executa o código PHP, ainda há dois caminhos a serem discutidos. Se o PHP está sendo executado por meio de um servidor da web, você pode obter o endereço do servidor lendo
$_SERVER['SERVER_ADDR']
. Se o PHP estiver sendo executado por meio de uma interface de linha de comando, você provavelmente terá que executar o shellipconfig
(Windows) /ifconfig
(* nix) e executar o grep no endereço.Se por local você quer dizer o endereço remoto do visitante do site, mas não seu endereço IP externo (já que você disse especificamente 192. *), então você está sem sorte. O objetivo do roteamento NAT é ocultar esse endereço. Você não pode identificar os endereços locais de computadores individuais por trás de um endereço IP, mas existem alguns truques (agente do usuário, possivelmente endereço mac) que podem ajudar a diferenciar se houver vários computadores acessando a partir do mesmo IP.
fonte
hostname (1) pode dizer o endereço IP:,
hostname --ip-address
ou como diz o homem, é melhor usarhostname --all-ip-addresses
fonte
Você pode tentar isso como um usuário regular na CLI no host Linux:
Resultado:
fonte
array('bond0'=>'10.66.42.83','bond1'=>'hosting Ip address','lo'=>'127.0.0.1', )
Eu tenho esse. Eu adicionei este código em um arquivo php,split()
função foi DESCONTINUADA a partir do PHP 5.3.0. por isso sugiro usarexplode()
vezTentei no pc com Windows e funcionou e também acho que funcionará no Linux para.
fonte
É muito simples e as respostas acima complicam as coisas. Simplesmente você pode obter endereços IP locais e públicos usando este método.
fonte
É fácil. Você pode obter o nome do host por este código simples.
Ou você também pode usar
$_SERVER['HTTP_HOST']
para obter o nome do host.fonte
Eu brinquei com esta questão para um php do lado do servidor (executando a partir de um terminal Linux)
Explodi 'ifconfig' e reduzi para o endereço IP.
Aqui está:
E, claro, mude 'wlan0' para o dispositivo de rede desejado.
Minha saída é:
fonte
Se você estiver em um ambiente dev no OS X, conectado via Wifi:
fonte
Funcionou para mim
fonte
PHP_SELF
Retorna o nome do arquivo do script atual com o caminho relativo à raizSERVER_PROTOCOL
Retorna o nome e a revisão do protocolo solicitado pela páginaREQUEST_METHOD
Retorna o método de solicitação usado para acessar a páginaDOCUMENT_ROOT
Retorna o diretório raiz sob o qual o script atual está sendo executadofonte
Tente isto
fonte