导航:首页 > 配服务器 > tcp如何服务器获取客户端ip

tcp如何服务器获取客户端ip

发布时间:2023-06-03 16:43:21

1. 如何获得Socket连接客户端的IP地址

如果服务器端要获取客户端ip的话:


//假设socket(),bind(),listen()函数已经完成
addrlen=sizeof(client);
connetfd=accept(listenfd,(structsockaddr*)&client,&addrlen);

那么client.sin_port 就是客户端的端口

client.sin_addr.s_addr 就是客户端的ip。

这两个都是以网络字节序来保存的,如果要printf的话需要先转化为主机字节序

2. 客服端和服务端建立TCP连接后,怎么从服务端获取客户端的IP地址

Socket clientSock = ServerSocket.Accpet();
接受客户端连接

DateTime connectTime = DateTime.Now;
连接一个客户端后,当前时间就是连接时间。

(clientSock.RemoteEndPoint as IPEndPoint).IPAddress;
ip地址
(clientSock.RemoteEndPoint as IPEndPoint).Port;
端口号

3. 服务器如何获取客户端的IP地址,并与客户端建立TCP连接

客户端的IP自动获取,关键要看客户端的IP是由谁来分配的,如果都是有ISP提供的那么服务器利用IP去连接客户端就不太可能。可以尝试用下面两种思路解决:
1、能否让客户机主动连接服务器。
2、使用动态DNS。让每个客户机都申请一个动态域名,无论它的IP怎样变,当改变以后都会到DNS服务器进行注册,然后服务器使用主机的名字访问客户端。

4. TCP服务器如何检测客户端的IP和端口

你熟悉socket
API不?如果不熟悉的话建议先看看socket编程的文档。这是链接地址:http://msdn.microsoft.com/en-us/library/ms738545(v=VS.85).aspx
一般服务端的sokcet
API调用顺序为:
bind()
//
设置服务端口
listen()
//
等待客户端连接
accept()
//
与客户端建立连接
请参考:http://msdn.microsoft.com/en-us/library/ms737526(v=VS.85).aspx
这是accept函数的原型:
SOCKET
accept(
__in
SOCKET
s,
__out
struct
sockaddr
*addr,
__inout
int
*addrlen
);
第二个参数,
addr,包含了客户端的IP地址和端口。你可以认为这就是客户端的IP和端口。但是,要注意的是这个IP不一定就完全等价于客户端本机的端口。比如:客户端在一个局域网里,IP地址是192.168.1.100,然后它通过ADSL路由连接到internet,再通过internet连接到服务端。这个时候,服务端获得的客户端IP地址就可能是那个ADSL路由的IP。

阅读全文

与tcp如何服务器获取客户端ip相关的资料

热点内容
数据库查询系统源码 浏览:617
php5314 浏览:358
完美国际安装到哪个文件夹 浏览:669
什么app可以扫一扫做题 浏览:540
程序员编码论坛 浏览:924
淘点是什么app 浏览:660
中国高等植物pdf 浏览:454
51单片机时间 浏览:182
后台如何获取服务器ip 浏览:267
单片机流水灯程序c语言 浏览:236
程序员第二职业挣钱 浏览:240
运行里怎么输入服务器路径 浏览:843
pythonstepwise 浏览:513
刘一男词汇速记指南pdf 浏览:67
php认证级别 浏览:372
方舟编译啥时候推送 浏览:1013
php手机验证码生成 浏览:678
哲学思维pdf 浏览:18
凌达压缩机有限公司招聘 浏览:536
weblogic命令部署 浏览:40