//在使用這個函式時先在相應的.cpp檔案中新增下面的**(標頭檔案和庫)
#include #include #include "wtypes.h"
#ifdef _windows_
#undef _windows_
#endif
#pragma comment(lib, "ws2_32.lib ")
string ctaskdeal::getlocalipaddress()
; gethostname(local, sizeof(local));
hostent* ph = gethostbyname(local);
if (ph == null)
return "";
in_addr addr;
hostent *host=gethostbyname(local);
/*當有多個ip時,j就是所有ip的個數 inet_ntoa(*(in_addr*)host->h_addr_list[i] 這裡的i就是對應的每個ip
for(int i=0;;i++)
int j = i+1;
*/ memcpy(&addr, ph->h_addr_list[0], sizeof(in_addr)); // 這裡的0代表第乙個,填1就是第二個了
string localip;
localip.assign(inet_ntoa(addr));
wsacleanup();
return localip;
}
下面是乙個簡單的小例項
用vector容器將ip存起來,然後逐條列印出來
#include #include #include #include "wtypes.h"
#ifdef _windows_
#undef _windows_
#endif
#pragma comment(lib, "ws2_32.lib ")
using namespace std;
vectorm_iplist;
void getlocalipaddress()
char local[255] = ;
gethostname(local, sizeof(local));
hostent* ph = gethostbyname(local);
if (ph == null)
in_addr addr;
hostent *host=gethostbyname(local);
string localip;
//當有多個ip時,j就是所有ip的個數 inet_ntoa(*(in_addr*)host->h_addr_list[i] 這裡的i就是對應的每個ip
for(int i=0;;i++)
} wsacleanup();
vector::iterator it;
for (it = m_iplist.begin();it != m_iplist.end();it++)
{ cout 本文是以apache伺服器為例 解決方案一 通過埠來區分不同的站點 2配置httpd.conf檔案 檔案位置 apache conf httpd.conf 啟用http vhosts.conf檔案,去掉 如下圖 3.配置我們的httpd vhosts.conf檔案 檔案路徑如上圖 4.在hosts檔... 由於公司內網有多台伺服器的http服務要對映到公司外網靜態ip,如果用路由的埠對映來做,就只能一台內網伺服器的80埠對映到外網80埠,其他伺服器的80埠只能對映到外網的非80埠。非80埠的對映在訪問的時候要網域名稱加上埠,比較麻煩。並且公司入口路由最多只能做20個埠對映。肯定以後不夠用。然後k兄就提... 乙個ip繫結多個網域名稱 ip位址一樣,不一樣的是不同的埠號,不同的埠號對應不同的網域名稱 在http vhost.conf裡面如下配置 新增新的位址,繫結同乙個ip,但是埠號不一樣 這裡是81 乙個apache可以監聽多個埠,啟動81埠 在httpd.conf裡面搜尋listen 新增listen...如何在本地進行乙個IP訪問多個網域名稱
多個網域名稱公用乙個IP
乙個ip繫結多個網域名稱