T**S 发帖数: 319 | 1 【 以下文字转载自 Linux 讨论区 】
发信人: TINS (TINS), 信区: Linux
标 题: 有没有什么网络函数能够
发信站: BBS 未名空间站 (Thu Sep 30 19:21:24 2010, 美东)
返回连接一个地址所用的本地网卡地址。比如说,如果要从这个机器发送数据到1.2.3.
4,那么这个机器将使用什么本地地址作为数据的source ip?
thanks. | D*****r 发帖数: 6791 | 2 网络函数是什么意思?
是说system call么?我帮你google了一下,好像可以用ioctl
http://cplus.kompf.de/artikel/macaddr.html#second
3.
【在 T**S 的大作中提到】 : 【 以下文字转载自 Linux 讨论区 】 : 发信人: TINS (TINS), 信区: Linux : 标 题: 有没有什么网络函数能够 : 发信站: BBS 未名空间站 (Thu Sep 30 19:21:24 2010, 美东) : 返回连接一个地址所用的本地网卡地址。比如说,如果要从这个机器发送数据到1.2.3. : 4,那么这个机器将使用什么本地地址作为数据的source ip? : thanks.
| T**S 发帖数: 319 | 3 不是的. 比如说你的机器上有两个网卡, 各有一个地址. 现在如果你要送数据到, 比如
www.google.com, 那么你发出来的数据将使用那个本地地址作为source address呢? IP
header中的一些field, 是由系统自动设定的. 当然有些field可以通过setsockopt()
来设置或getsockopt()来查询, 但souorce IP是系统根据routing table中的路由来设
置的. 现在的问题就是如何能知道到底系统选择的是哪个本地地址.
机器上可能有多个网卡, 而且每个都可能有许多IP aliases, routing table 也可能很
复杂, 所以才有这个问题.
【在 D*****r 的大作中提到】 : 网络函数是什么意思? : 是说system call么?我帮你google了一下,好像可以用ioctl : http://cplus.kompf.de/artikel/macaddr.html#second : : 3.
| t****t 发帖数: 6806 | 4 not getsockname()?
IP
【在 T**S 的大作中提到】 : 不是的. 比如说你的机器上有两个网卡, 各有一个地址. 现在如果你要送数据到, 比如 : www.google.com, 那么你发出来的数据将使用那个本地地址作为source address呢? IP : header中的一些field, 是由系统自动设定的. 当然有些field可以通过setsockopt() : 来设置或getsockopt()来查询, 但souorce IP是系统根据routing table中的路由来设 : 置的. 现在的问题就是如何能知道到底系统选择的是哪个本地地址. : 机器上可能有多个网卡, 而且每个都可能有许多IP aliases, routing table 也可能很 : 复杂, 所以才有这个问题.
|
|