linux 得到 客戶端 ip 和 port

2021-06-22 12:23:07 字數 583 閱讀 4438

在socket程式設計中,伺服器端accept()等待乙個客戶端的連線,當連線成功後,accept拷貝客戶端的位址資訊到sin_addr裡面,我們如何從sin_addr取得此客戶端的ip位址和埠號呢?

實際上,當sockaddr_in.sin_family = af_inet時,sockaddr = sockaddr_in。

//將sockaddr強制轉換為 sockaddr_in

sockaddr_in sin;

memncpy(

&sin, 

&clientaddr, sizoef(sin));

//取得ip和埠號

sprintf(info.ip, inet_ntoa(sin.sin_addr));

info.port 

=sin.sin_port; 

port = htons(port);

info.sock 

=new_fd;

htonl()表示將32位的主機位元組順序轉化為32位的網路位元組順序 htons()表示將16位的主機位元組順序轉化為16位的網路位元組順序(ip位址是32位的埠號是16位的 )

PHP下得到客戶端ip的方法

getenv gets the value of an environment variable stringgetenv string varname returns the value of the environment variable varname,or false on an erro...

PHP下得到客戶端IP的方法

php下得到客戶端ip的方法 2007 04 19 10 53 但是當web伺服器api是asapi iis 的時候,getenv函式是不起作用的。這種情況下你如果用getenv來取得使用者客戶端ip的話,得到的將是錯誤的ip位址。getenv gets the value of an enviro...

利用SQL語句得到客戶端的IP位址

1 得到客戶端的ip位址 ip declare ip varchar 20 hst varchar 20 sql varchar 100 declare str varchar 100 set str ping host name create table tmp aa varchar 200 in...