//获取本地IP地址和对端IP地址

 1 //获取本地IP地址
 2 CHAR * GetLocalIpAdrr(int fd)
 3 {
 4     struct sockaddr_in stHost;
 5     memset(&stHost, 0, sizeof(stHost));
 6 
 7 #ifdef _WIN32
 8     INT iLen = sizeof(stHost);
 9 #else
10     socklen_t iLen = sizeof(stHost);
11 #endif
12     CHAR * szHostIp;
13 
14     if(0 != getsockname((UINT)fd, (sockaddr *)&stHost, &iLen))
15     {
16         g_enErrorCode = PU_ERROR_CODE_SOCKET_ERROR;
17         return NULL;
18     }
19     szHostIp = inet_ntoa(stHost.sin_addr);
20 
21     return szHostIp;
22 }
23 
24 //获取对端IP地址
25 CHAR * GetRemoteIpAddr(int fd)
26 {
27     struct sockaddr_in stRemote;
28     memset(&stRemote, 0, sizeof(stRemote));
29 
30 #ifdef _WIN32
31     INT iLen = sizeof(stRemote);
32 #else
33     socklen_t iLen = sizeof(stRemote);
34 #endif
35     CHAR * szRemoteIp;
36 
37     if (0 != getpeername((UINT)fd, (sockaddr *)&stRemote, &iLen))
38     {
39         g_enErrorCode = PU_ERROR_CODE_SOCKET_ERROR;
40         return NULL;
41     }
42     szRemoteIp = inet_ntoa(stRemote.sin_addr);
43     return szRemoteIp;
44 }

转载于:https://www.cnblogs.com/xuejianhui/archive/2012/09/10/2678480.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值