如何限制远端IP地址

yym314 2004-11-04 05:20:05
如果一个sock在一个端口XXXX侦听.那么这个sock就能接受来自任意IP地址,任意端口的数据.
我现在想让这个sock只接受来自 A.B.C.D:YYYY 的数据.这个功能能用winsock实现吗?如果可以,那么要怎么做再能实现这个功能呢?
我看msn好象就能做到这样.
...全文
111 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
phoenixsharp 2004-11-05
  • 打赏
  • 举报
回复
C:\>netstat -a
有没有搞错呀??~~~
///////////
Active Connections /* 这是当前你的PC的活动连接*/

Proto Local Address Foreign Address State
TCP yym:1045 baym-cs324.msgr.hotmail.com:1863 ESTABLISHED
TCP yym:1140 207.46.134.90:http CLOSE_WAIT
UDP yym:microsoft-ds *:*
/*第一.二行是TCP协议(有状态连接,可以看到当前对话连接)*/
/*UDP是无状态的连接,*:*表示未知*/
做IP限制在CONNECT 或ACCEPT中判断,不符合主动断开,不过感觉好像不是很先进哈?:)

sharkhuang 2004-11-05
  • 打赏
  • 举报
回复
accept的时候做判断,如果是非法的则发送rst 包回应.
具体怎么在accept时候发送rst包啊
yym314 2004-11-05
  • 打赏
  • 举报
回复

C:\>netstat -a

Active Connections

Proto Local Address Foreign Address State
TCP yym:1045 baym-cs324.msgr.hotmail.com:1863 ESTABLISHED
TCP yym:1140 207.46.134.90:http CLOSE_WAIT
UDP yym:microsoft-ds *:*

C:\>
===============================================================================
上面是在我电脑上执行netstat的结果(我删除了一些).
注意 第一行和第二行的那个Foreign Address并不是*.*,也就是说他限制了远端IP地址 。
他是怎么做出来的?
这应该不会是大家说的先accept,然后在判断吧!!!!!!!!
alec626(月吻长河) 说的那种方法我就不清楚了
huangxiaoke2000 2004-11-04
  • 打赏
  • 举报
回复
就是啊accept的第二个参数不就可以返回对方IP了嘛
yspear 2004-11-04
  • 打赏
  • 举报
回复
accept时不是直接就得到地址了吗,为什么要getsockname()?
oyljerry 2004-11-04
  • 打赏
  • 举报
回复
accept了getpeername得到后,判断
gdy119 2004-11-04
  • 打赏
  • 举报
回复
accept()后,getsockname()得到对放IP和端口,不是A.B.C.D:YYYY
closesocket()
DentistryDoctor 2004-11-04
  • 打赏
  • 举报
回复
对,在Accept时判断。
kingzai 2004-11-04
  • 打赏
  • 举报
回复
accept的时候做判断,如果是非法的则发送rst 包回应
月吻长河 2004-11-04
  • 打赏
  • 举报
回复
在TCP建立连接的3次握手的过程中作个验证,对非法的IP地址拒绝连接
lsgt 2004-11-04
  • 打赏
  • 举报
回复
accept后可以用getpeername得到对方得地址

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧