1. 程式人生 > >php獲取本機IP地址

php獲取本機IP地址

<?php
function get_local_ip()
{
$preg = "/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\Z/";
//獲取作業系統為win2000/xp、win7的本機IP真實地址
exec("ipconfig", $out, $stats);
if (!empty($out)) {
foreach ($out AS $row) {
if (strstr($row, "IP") && strstr($row, 
":") && !strstr($row, "IPv6")) { $tmpIp = explode(":", $row); if (preg_match($preg, trim($tmpIp[1]))) { returntrim($tmpIp[1]); } } } } //獲取作業系統為linux型別的本機IP真實地址 exec("ifconfig", $out, $stats); if (!empty($out)) { if (isset($out[1]) &&
strstr($out[1], 'addr:')) { $tmpArray = explode(":", $out[1]); $tmpIp = explode("", $tmpArray[1]); if (preg_match($preg, trim($tmpIp[0]))) { returntrim($tmpIp[0]); } } } return '127.0.0.1'; }  
<?php
/**獲取伺服器ip地址
 * @return array|false|string
 */
function get_server_ip()
{ $preg = "/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\Z/"; $os = Check_Domain_Helper::check_machine_os(); if ($os === 'Windows') { //獲取作業系統為win2000/xp、win7的本機IP真實地址 exec("ipconfig", $out, $stats); if (!empty($out)) { foreach ($out AS $row) { if (strstr($row, "IP") && strstr($row, ":") && !strstr($row, "IPv6")) { $tmpIp = explode(":", $row); if (preg_match($preg, trim($tmpIp[1]))) { return trim($tmpIp[1]); } } } } } else { //獲取作業系統為linux型別的本機IP真實地址 $result = shell_exec("/sbin/ifconfig"); if (preg_match_all("/inet (\d+\.\d+\.\d+\.\d+)/", $result, $match) !== 0) // 這裡根據你機器的具體情況, 可能要對“inet ”進行調整, 如“addr:”,看如下注釋掉的if // if (preg_match_all("/addr:(\d+\.\d+\.\d+\.\d+)/", $result, $match) !== 0) { foreach ($match [0] as $k => $v) { if ($match [1] [$k] != "127.0.0.1") { $the_local_ip = $match [1] [$k]; return $match [1] [$k]; } } } } return '127.0.0.1'; }
<?php
/**獲取伺服器ip地址
 * @return array|false|string
 */
public
static function get_server_ip()
{
$preg = "/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\Z/";
$os = Check_Domain_Helper::check_machine_os();
if ($os === 'Windows') {
//獲取作業系統為win2000/xp、win7的本機IP真實地址
exec("ipconfig", $out, $stats);
if (!empty($out)) {
foreach ($out AS $row) {
if (strstr($row, "IP") && strstr($row, ":") && !strstr($row, "IPv6")) {
$tmpIp = explode(":", $row);
if (preg_match($preg, trim($tmpIp[1]))) {
return trim($tmpIp[1]);
                    }
                }
            }
        }
    } else {
//獲取作業系統為linux型別的本機IP真實地址
$match = '';
exec("ifconfig", $result, $stats);
$result = implode("", $result);
$is_match = preg_match_all("/addr:(\d+\.\d+\.\d+\.\d+)/", $result, $match);
if ($is_match == 0) {
$is_match = preg_match_all("/inet (\d+\.\d+\.\d+\.\d+)/", $result, $match);
        }
        var_dump($match);
if ($is_match !== 0) {
foreach ($match [0] as $k => $v) {
if ($match [1] [$k] != "127.0.0.1") {
$the_local_ip = $match [1] [$k];
return $match [1] [$k];
                }
            }
        }
    }
return '127.0.0.1';
}

相關推薦

php獲取IP地址

<?php function get_local_ip() { $preg = "/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4

獲取IP地址的小腳

ash class p地址 nbsp 地址 int done 獲取本機 onf 獲取本機私網地址(1個) 1 #!/bin/bash 2 # Author : standby 3 # Date : 2017-05-18 4 # D

unity 獲取ip地址

ipa mil work get hostname [] 本機 取ip gethost IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName()); //Dns.GetHostName()獲取本機名Dns.GetH

獲取IP地址

down pos -m 兩個 div mar inter 獲取本機ip地址 work 問題描述 一臺電腦有IPV4地址和IPV6地址,目前使用的基本是IPV4地址, 有些情況還有多個網卡,有線的、無線的、還有vmare虛擬的兩個網卡。 獲取所有的IP地址 //獲取本機IP

windows下用C++獲取IP地址

ali 返回 轉換成 data info AC ctrl nag != BSTR CamUtilsCtrl::GET_TERM_IP(void){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); CString strResult

shell中獲取ip地址

align 本機ip www. .cn logs res font 地址 獲取本機ip 方法一: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk ‘{print $2}‘|tr -d "addr

C++ 獲取ip地址

C++/MFC  獲取本地計算機的所有IP string m_LocalIP1;//IP地址臨時變數 string m_LocalIP2; LPCSTR psz; //獲得本地計算機名 char PCnameBuffer[128]; string m_PCname; //初始化

Linux下C語言獲取IP地址

#include <sys/ioctl.h> #include <net/if.h> #include <arpa/inet.h>   char* GetLocalIp() { int MA

【C#】獲取IP地址

前言    最近開始做牛腩新聞釋出系統,剛接觸網頁開發,因為沒有基礎,做起來比較困難,當然BUG就多了。不過“牛”老師水平很高,講的很清楚,出現BUG分分鐘就可以搞定。在做評論新聞這一功能時,需要獲取本機的IP地址。這時就出現BUG了。 BUG 根據“牛”老師的方法: IP

linux c 獲取ip地址

#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <

python 獲取IP地址,檢測埠是否被佔用

import socket def get_host_ip(): """ get host ip address 獲取本機IP地址 :return: """ s = socket.socket(socket.

批處理--工作當中獲取ip地址然後執行一個迴圈啟動指令碼

goto :main rem +++++++獲取本機ip++++++++++++++++++++++++++++++++++++   :get_local_ip   rem 注意 不要照搬某些人的文章,如果你把函式寫成setlocal   dosomething endlocal 這種結構,那麼在這段程式碼中

NSIS獲取IP地址寫入配置檔案

安裝一個應用程式的時候需要獲取當前的網絡卡IP地址,即伺服器IP地址,同時寫入到配置檔案。NSIS提供了獲取IP地址的外掛,IP-plugin,詳情請看:http://nsis.sourceforge.net/IP_plug-in 外掛安裝很簡單,只需要下載dll檔案,拷貝到

linux程式設計獲取IP地址的三種方法

                這是一項不太清晰而且沒有多大意義的工作。一個原因是網路地址的設定非常靈活而且都是允許使用者進行個性

C語言獲取IP地址

char* getIpAddress(){ WSADATA wsaData; char name[255];//定義用於存放獲得的主機名的變數 char *ip;//定義IP地址變數 PHOSTENT hostinfo;

iOS專案開發實戰——獲取IP地址

     在設計iOS網路開發中,我們需要獲取本機的IP地址,那麼通過Swift呼叫OC如何來實現呢?我將會通過一個Swift的iOS專案,然後通過呼叫OC的方法,來實現這個功能。 (1)在Swift專案中新建Cocoa Touch Class,語言選擇Objective-

socket獲取IP地址方法

    獲取計算機的名稱和IP地址可以通過呼叫winsock裡面的函式完成,下面上是用到的函式:1.WSAStartup(),此函式在應用程式中初始化windows sockets DLL,這個函式呼叫成功後,才可以呼叫其他的api函式。 2.WSACleanup()函式,

window上獲取IP地址方法--windows程式設計

使用獲取本地地址的方法比較多,簡單點的就是ipconfig命令就好了,本地網路之類的圖形介面而本次是使用作為一個程式設計師的方式來獲取本地的ip地址。 InitSock.h如下: #include &

linux獲取IP地址

 ifaddrs結構體定義如下: C程式碼   struct ifaddrs    {        struct ifaddrs  *ifa_next;    /* Next item in list */        char            *ifa_name;    /* Nam

Linux下Java獲取IP地址

在Linux下用InetAddress.getLocalHost()方法獲取本機IP地址, 得到的結果總是:127.0.0.1。 原來這個是etc/hosts檔案中的配置,並非網絡卡的IP地址。 後來多方尋訪,終於得下以下程式碼, 執行後在控制檯輸出IP與MAC地址。import java.net.*;imp