客戶端和伺服器ip代碼
⑴ IP地址里的伺服器ip地址和客戶端IP地址分別指的是什麼
伺服器IP地址是指為你提供某項服務的伺服器上的IP地址。例如郵件伺服器,假設它的IP地址為192.168.1.252,那麼郵件伺服器的IP地址就是192.168.1.252。
客戶端地址是指當前終端使用的IP地址,一般都是PC(電腦)、AP(無線路由器)、攝像頭等終端。
補充:
有些情況在伺服器上是可以看到終端的IP地址的,例如(無線路由器,它既可以看到自己的IP,即伺服器IP地址,也可以看到終端的IP地址;一些網路安全使用限制的軟體也需要在其伺服器上收集客戶端的一些信息,其中就包括IP地址、mac地址、登錄用戶等。
這里所說的伺服器IP地址和客戶端IP地址指的應該是DHCP伺服器和其它終端從該伺服器上自動獲取的地址,所有的地址(已分配和未分配的IP地址)都可以在伺服器上顯示出來的。
一些VPN也是需要知道伺服器和客戶端的IP地址才可以正常使用。
⑵ 伺服器IP地址和客戶端IP地址有什麼區別
客戶端IP地址是你的IP地址 伺服器IP地址是可以使用代理的,
⑶ 何為伺服器IP和客戶端IP,都是什麼東西
你是不是從XP的連接屬性里查看到的?呵呵
客戶端IP就是你的IP地址,而伺服器端IP就是電信路由設備的IP地址,一般如果伺服器IP地址是:123.231.123.1 那麼你的客戶端就會是123.231.123.×(×代表2~254之間的數字)
⑷ 客戶端ip,伺服器ip和本地ip分別是什麼意思
伺服器IP跟客戶端IP是對應的,多個客戶端IP去訪問伺服器
本地IP就是你自己的上網IP
⑸ 客戶端與伺服器端的通訊,C++書寫步驟。
要實現客戶端與伺服器端的通訊,需要兩部分C++的程序:伺服器端程序代碼和客戶端代碼。
首先是伺服器端程序代碼:
#include <WinSock2.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
WSADATA wsaData;
int port = 5099;
char buf[] = "Server: hello, I am a server.....";
if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
printf("Failed to load Winsock");
return;
}
//創建用於監聽的套接字
SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addrSrv;
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(port); //1024以上的埠號
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
int retVal = bind(sockSrv, (LPSOCKADDR)&addrSrv, sizeof(SOCKADDR_IN));
if(retVal == SOCKET_ERROR){
printf("Failed bind:%d ", WSAGetLastError());
return;
}
if(listen(sockSrv,10) ==SOCKET_ERROR){
printf("Listen failed:%d", WSAGetLastError());
return;
}
SOCKADDR_IN addrClient;
int len = sizeof(SOCKADDR);
while(1)
{
//等待客戶請求到來
SOCKET sockConn = accept(sockSrv, (SOCKADDR *) &addrClient, &len);
if(sockConn == SOCKET_ERROR){
printf("Accept failed:%d", WSAGetLastError());
break;
}
printf("Accept client IP:[%s] ", inet_ntoa(addrClient.sin_addr));
//發送數據
int iSend = send(sockConn, buf, sizeof(buf) , 0);
if(iSend == SOCKET_ERROR){
printf("send failed");
break;
}
char recvBuf[100];
memset(recvBuf, 0, sizeof(recvBuf));
// //接收數據
recv(sockConn, recvBuf, sizeof(recvBuf), 0);
printf("%s ", recvBuf);
closesocket(sockConn);
}
closesocket(sockSrv);
WSACleanup();
system("pause");
}
接下來是客戶端代碼:
#include <WinSock2.h>#include <stdio.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
//載入套接字
WSADATA wsaData;
char buff[1024];
memset(buff, 0, sizeof(buff));
if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
printf("Failed to load Winsock");
return;
}
SOCKADDR_IN addrSrv;
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(5099);
addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
//創建套接字
SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0);
if(SOCKET_ERROR == sockClient){
printf("Socket() error:%d", WSAGetLastError());
return;
}
//向伺服器發出連接請求
if(connect(sockClient, (struct sockaddr*)&addrSrv, sizeof(addrSrv)) == INVALID_SOCKET){
printf("Connect failed:%d", WSAGetLastError());
return;
}else
{
//接收數據
recv(sockClient, buff, sizeof(buff), 0);
printf("%s ", buff);
}
//發送數據
char buff = "hello, this is a Client....";
send(sockClient, buff, sizeof(buff), 0);
//關閉套接字
closesocket(sockClient);
WSACleanup();
}
⑹ 如何獲取客戶端IP和MAC地址,我獲取的是伺服器的!!! C#
<FORM id= "formfoo "或禪胡 name= "formbar " action= "index.do " method= "post "> <INPUT value= "00-11-11-B4-52-EF " name= "txtMACAddr "> <INPUT value= "210.42.38.50 " name= "txtIPAddr "> <INPUT value= "zhupan " name= "txtDNSName "> </FORM> 如何傳衫攔值,只要客戶端訪問立即傳客戶端IP和MAC 不要客戶端任何襲蔽操作
⑺ 如何獲取客戶端和伺服器ip地址
您好,.X.XXX.XXX系列IP,而這個函數獲取的是區域網網關出口的IP地址,如果訪問者使用代理伺服器,將不獲取代理伺服器的IP,而是獲取訪問者網關的真實IP。如果將這個函數應用到限IP訪問的網頁中,別人即使通過限IP訪問段中的代理伺服器,也不能訪問該頁面。
下面提供一個函數:<?php
// 定義一個函數getIP()
function getIP(){global $ip;
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");else$ip = "Unknow";
return $ip;}
// 使用方法:
echo getIP();?>
getenv("REMOTE_ADDR")用來取得客戶端的 IP 地址,但如果客戶端是使用代理伺服器來訪問,那取到的就是代理伺服器的 IP 地址,而不是真正的客戶端 IP 地址。要想透過代理伺服器取得客戶端的真實 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 來讀取。
但是如果客戶端沒有通過代理伺服器來訪問,那麼用getenv("HTTP_X_FORWARDED_FOR") 取到的值將是空的。
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不為空(即客戶端使用代理伺服器的情況下),則變數$ip等於getenv("HTTP_X_FORWARDED_FOR") 取到的真實IP值。
如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值為空(即沒有使用代理伺服器),則不會執行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");這一行語句。
這種情況下已經確認客戶端沒有使用代理伺服器,從而通過
else if(getenv("REMOTE_ADDR"))
這兩行語句獲得客戶端的IP地址也是真實的IP地址。
⑻ 客戶端IP地址和伺服器IP地址是什麼意思
客戶端IP地址指的是用戶機所使用的IP地址;
伺服器IP地址核輪是指提供各項服務的伺服器伏舉的Ip地址,即網路伺服器的IP地址。
客戶端IP地址和伺服器IP地址的分配沒有具體缺氏碧要求,但是在同一個網內IP地址不能重復,否則系統會提示IP地址沖突。
⑼ 伺服器IP地址和客戶端IP地址有什麼區別
IP地址就像是計算機的身份證一樣,在一個網內具有唯一性,伺服器IP地址是提供各項服務的伺服器的Ip地址,客戶機IP地址是網路內除了伺服器IP之外的IP地址,他們的分配沒有什麼要求,網路管理員可以隨意分配,也就是說伺服器用的IP地址也是一個一般的IP地址,沒有什麼要求(不是說伺服器必須用192.268.0.1而客戶機就不能用這個,但是我們在日常配置時往往把網段內的第一個或最後一個配置為伺服器的IP,至少我的習慣是這樣,目的只是好記憶而已),雖然網內的IP分配沒有什麼要求,但是在同一個網內IP地址不能重復,否則系統會提示IP地址沖突。不知道我的回答您是否滿意!
⑽ 什麼是客戶端IP和伺服器端IP
*什麼是IP?
現實生活中每家都一個門牌號碼,又了它,找人,投遞都很容易。
網路中的每一台計算機也需要一個地址,那就是IP地址。目前使用的是IPv4版的32位地址。
*什麼是客戶端和服務端?
打個比方:網吧使用的管理軟體為PUBWIN(分伺服器程序和客戶機程序),普通的的電腦上裝的就可以理解為PUBWIN客戶端,用來給你沖卡結算的那台裝的就可以理為PUBWIN服務端。
網吧的每台計算機也是有IP地址的。
其實就是 「客服端的IP地址」和「服務端的IP地址」