社区
网络编程
帖子详情
多网卡如何取得正在使用的本机IP?
wqpaul
2007-01-17 11:21:31
内网的一台机器有2张网卡,分处在不同的网段(192.168.0.*,172.168.*.*),分别通过NAT与公网的服务器相连。
请问如何得到到底是那个网卡或者那个IP地址与服务器相连接?
最好不要低于Socket的级别。
谢谢!
...全文
1197
13
打赏
收藏
多网卡如何取得正在使用的本机IP?
内网的一台机器有2张网卡,分处在不同的网段(192.168.0.*,172.168.*.*),分别通过NAT与公网的服务器相连。 请问如何得到到底是那个网卡或者那个IP地址与服务器相连接? 最好不要低于Socket的级别。 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xfyxq
2012-01-04
打赏
举报
回复
C#报语法错误
cnlzx
2007-04-28
打赏
举报
回复
1
bind和listen不是一回事,你是不是以为监听端口才bind?
connect前没bind的那么用的本地port是系统随机给的,你试下bind在一个端口之后connect 一个IP,再netstat看看本地用什么端口连出去的
wqpaul
2007-02-12
打赏
举报
回复
可是bind是服务器端的啊!
alexmayer
2007-01-19
打赏
举报
回复
学习
cnlzx
2007-01-19
打赏
举报
回复
在与服务器相连时也就是connect前不是要bind吗?你bind在哪个网卡上进行的connect啊?
EvilLin
2007-01-18
打赏
举报
回复
char localName[ 80 ] = {0};
int ret = 0;
if ( gethostname( localName, sizeof( localName ) ) == SOCKET_ERROR )
{
return false;
}
struct hostent *phe = gethostbyname( localName );
int count = 0;
while(phe->h_addr_list[count]!=0)
count++;
.......
macnab
2007-01-18
打赏
举报
回复
HOSTENT* pHost;
pHost=gethostbyname(strHostName); //用主机名来得到IP地址
他会得到一个指针数组,用来表示所有网卡IP.
wj19781215
2007-01-18
打赏
举报
回复
用api getsockname(pContext^.sConnect,@LocalAddr,nAddrLen)
chehw
2007-01-17
打赏
举报
回复
你需要明确描述一下工作环境。
wqpaul
2007-01-17
打赏
举报
回复
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.16.0.1 172.16.0.71 30
0.0.0.0 0.0.0.0 192.168.100.100 192.168.100.103 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
172.16.0.0 255.255.0.0 172.16.0.71 172.16.0.71 30
172.16.0.71 255.255.255.255 127.0.0.1 127.0.0.1 30
172.16.255.255 255.255.255.255 172.16.0.71 172.16.0.71 30
192.168.100.0 255.255.255.0 192.168.100.103 192.168.100.103 20
192.168.100.103 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.100.255 255.255.255.255 192.168.100.103 192.168.100.103 20
192.168.122.0 255.255.255.0 192.168.122.1 192.168.122.1 20
192.168.122.1 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.122.255 255.255.255.255 192.168.122.1 192.168.122.1 20
192.168.140.0 255.255.255.0 192.168.140.1 192.168.140.1 20
192.168.140.1 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.140.255 255.255.255.255 192.168.140.1 192.168.140.1 20
224.0.0.0 240.0.0.0 172.16.0.71 172.16.0.71 30
224.0.0.0 240.0.0.0 192.168.100.103 192.168.100.103 20
224.0.0.0 240.0.0.0 192.168.122.1 192.168.122.1 20
224.0.0.0 240.0.0.0 192.168.140.1 192.168.140.1 20
255.255.255.255 255.255.255.255 172.16.0.71 172.16.0.71 1
255.255.255.255 255.255.255.255 192.168.100.103 192.168.100.103 1
255.255.255.255 255.255.255.255 192.168.122.1 192.168.122.1 1
255.255.255.255 255.255.255.255 192.168.140.1 192.168.140.1 1
Default Gateway: 192.168.100.100
===========================================================================
Persistent Routes:
None
chehw
2007-01-17
打赏
举报
回复
读注册表网络适配器的信息,
有网关的网卡连的是公网服务器,没网关的连的是内部。
wqpaul
2007-01-17
打赏
举报
回复
我可以读取到地址信息172.16.0.71和192.168.100.103 并且从路由表 可以知道 是从 192.168.100.103请求出去的。当时写程序如何知道是那张网卡出去的呢?
0.0.0.0 0.0.0.0 172.16.0.1 172.16.0.71 30
0.0.0.0 0.0.0.0 192.168.100.100 192.168.100.103 20
zdleek
2007-01-17
打赏
举报
回复
通常来说,比较通用而且简单的办法是从配置文件读取IP,然后绑定到该IP
Android获取
本机
IP
地址
本文介绍了多种Android设备获取
本机
IP
地址的方式,重点对比了通过网络接口遍历、Socket连接及activeNetwork三种方法。推荐
使用
Android 6.0及以上支持的activeNetwork方式,能精准快速获取当前正在
使用
的网络接口
IP
,避免多
网卡
场景下的选择难题,并提供适配低版本的兼容方案。
多
网卡
下获取
本机
IP
的方式。
本文提供了两种在多
网卡
环境下获取
本机
IP
地址的方法。方法一
使用
了NetworkUtils类,通过枚举所有网络接口并检查其是否为环回地址来获取
IP
。方法二也采用了类似的方式,但只返回第一个非环回地址,适用于只需获取第一个有效
IP
的场景。
Shell脚本中获取
本机
ip
地址
本文介绍
使用
Shell脚本在单
网卡
或多
网卡
环境下获取
本机
IP
地址的方法,包括处理不同网段的
IP
地址,并提供
IP
地址合法性校验。
使用
UDP的connect获取
本机
IP
博客介绍了在多
网卡
环境下,通过UDP的connect方法来精确获取用于对外通信的
本机
IP
,此方法能够避免主机名为空或
使用
网卡
信息时的不确定性问题。源码示例展示了UDP connect如何根据静态路由表设置源
IP
和源端口。
网络编程
18,356
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章