Chinaunix

标题: 如何编程得到客户端的IP地址 [打印本页]

作者: realhac    时间: 2006-11-19 12:49
标题: 如何编程得到客户端的IP地址
客户端可以通过SSH或者FTP连接到服务器,我想通过C语言编程(程序运行在服务器上)获得连接的客户端的IP地址,怎么写?给条路子,谢谢
作者: realhac    时间: 2006-11-20 09:32
真的没有人知道吗?
作者: gomo1234    时间: 2006-11-20 18:14
inet_ntoa (client.sin_addr)
man inet_ntoa
作者: kenduest    时间: 2006-11-21 03:34
原帖由 realhac 于 2006-11-19 12:49 发表
客户端可以通过SSH或者FTP连接到服务器,我想通过C语言编程(程序运行在服务器上)获得连接的客户端的IP地址,怎么写?给条路子,谢谢


先参考 netstat 程式码作法,读取 /proc/net/ 内的 tcp,udp 这两个档案即可。

--
作者: realhac    时间: 2006-11-21 08:57
netstat的代码在什么位置啊?
作者: realhac    时间: 2006-11-21 09:01
另外我发现finger命令也能够得到客户端IP地址,谁能告诉我finger的源码在什么位置?
作者: realhac    时间: 2006-11-21 09:56
还有C语言里面能不能嵌入shell啊
作者: buhuiwang    时间: 2006-11-22 10:26
占个位置,招个人

急聘Linux系统管理员
http://job.chinaunix.net/jobs.php?id=3566
有意向者速联系:
0755-83268975 高先生  或  0755-83243946 唐先生
作者: suray    时间: 2006-11-30 09:43
原帖由 realhac 于 2006-11-19 12:49 发表
客户端可以通过SSH或者FTP连接到服务器,我想通过C语言编程(程序运行在服务器上)获得连接的客户端的IP地址,怎么写?给条路子,谢谢



可以利用共享内存, 找到netstat源码中输出结果的部分,修改一下让输出结果放到共享内存,再编译成可执行文件, 这样当可执行文件运行时, netstat结果就会在共享内存里,再从共享内存里取出结果就可以.
可以上网找一下 net-tools那个工具看一下.
作者: NICKY.BOY    时间: 2006-11-30 11:06
原帖由 realhac 于 2006-11-21 09:56 发表
还有C语言里面能不能嵌入shell啊



可以的,把shell命令,写到数组里.用popen就可以了。
作者: wenlin1982    时间: 2006-11-30 14:28
用getpeername()
作者: duanjigang    时间: 2006-12-04 23:34
http://bbs.chinaunix.net/viewthr ... &extra=page%3D1
应该能帮主你解决问题
作者: Nicole2006    时间: 2006-12-08 09:14
学习ing
作者: duanjigang    时间: 2006-12-25 13:54
如果你对协议比较感兴趣的话,我推荐你自己创建一个raw socket过滤经过常用服务端口的数据包,这样就知道客户端IP了
如果你偏于实现功能,那就用netstat之类的工具也行

[ 本帖最后由 duanjigang 于 2006-12-26 17:56 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2