想要用socket连接一个另一个网络中的内网地址如何知道他的ip

想要用socket连接一个另一个网络中的内网地址如何知道他的ip,第1张

通常内网地址DMZ区,通常无法直接访问。

需要中间有服务器中转。

如果能控制另一个网络路由器,可以做端口指向,这个有点麻烦。

就是你的IP是192168110,网关是19216811,另一个网络IP是192168210,网关是19216821

19216811和19216821可能是一个L2的不同网口,也可能是一个服务器的两个网卡。

情况不一样,做法不一样。

IPAddress remote_ip = ((SystemNetIPEndPoint)workerSocketRemoteEndPoint)Address;//获取远程连接IP

不是很懂这个

不知道这条命令能不能帮到你 ipconfig /all

还有就是,系统默认使用的是你最近一次连接的可以访问internet的网卡,比如说,我先连接的有线,可以上网,然后我又连接无线,系统自动切换到使用无线网卡,如果你把无线网卡停用了,系统又会自动切换到有线网卡,这个我试过的。

希望这些能帮到你。

首先你需要解析外部传进来的数据包,正常情况下,通信数据包的包头已经包含了数据包的源端和目的端地址。目的端地址自然是你的IP地址,而你所要攻龚掇夹墀蝗峨伟法连做的就是对源端地址进行判断。

如果源端地址是你指定的,那就解析数据包的净载荷部分(payload),进行相应的处理;

若不是你指定的,那么就不要处理,直接丢弃就好了。

这部分设计到socket底层编程,我以前用C#编写过,完全可以实现。

server = new SocketServer(3389);

Socket s = serveraccept();

sgetInetAddress()getHostAddress()

&可以作为“按位与”或是“取地址”运算符下面是作为两种用法的介绍:1按位与运算按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下:00001001(9的二进制补码)&00000101(5的二进制补码)00000001(1的二进制补码)可见9&5=1。按位与运算通常用来对某些位清0或保留某些位。例如把a的高八位清0,保留低八位,可作a&255运算(255的二进制数为0000000011111111)。2取地址&作为一元运算符,结果是右 *** 作对象的地址。例如&x返回x的地址。地址本身是一个抽象的概念,用于表示对象在存储器中的逻辑位置

以上就是关于想要用socket连接一个另一个网络中的内网地址如何知道他的ip全部的内容,包括:想要用socket连接一个另一个网络中的内网地址如何知道他的ip、怎么用Socket.RemoteEndPoint 获取客户端IP和端口 、如何获得已经建立的socket所使用的本地mac地址和ip地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9761703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存