我的计算机上有两个网络接口(eth0和eth1),并且我正在尝试使用特定的接口(eth1)拨号连接。考虑到我假设Go是一种系统语言,但是当前的标准库是否真的有可能?
到目前为止,我必须通过名称InterfaceByName
(eth1
)获取接口,然后遍历该Addrs
方法并提取第一个地址[0],该地址似乎是eth1接口的源地址(例如xxx.xxx.xxx/24);另一个是ipv6地址。
我创建了一个新的地址Dialer
并设置Dialer.LocalAddr
了地址。但是我得到的错误mismatched local address type
似乎与Dial.go的DialSingle函数有关
编辑 一些代码:
package main
import (
"net"
"log"
)
func main(){
ief, err := net.InterfaceByName("eth1")
if err !=nil{
log.Fatal(err)
}
addrs, err := ief.Addrs()
if err !=nil{
log.Fatal(err)
}
d := net.Dialer{LocalAddr: addrs[0]}
_, err = d.Dial("tcp", "google.com:80")
if err != nil {
log.Fatal(err)
}
}
输出: 2014/12/10 17:11:48 dial tcp 216.58.208.32:80: mismatched local address type ip+net
当您从接口提取地址时,它的类型就是*net.IPnet
包装在net.Addr
接口中的接口,该接口包含和地址和网络掩码,而不是地址和端口。您可以将IP地址声明为一个IP地址,然后使用它来创建一个新的TCPAddr。*net.IPnet
ief, err := net.InterfaceByName("eth1")
if err !=nil{
log.Fatal(err)
}
addrs, err := ief.Addrs()
if err !=nil{
log.Fatal(err)
}
tcpAddr := &net.TCPAddr{
IP: addrs[0].(*net.IPNet).IP,
}
1.免登录url定义 对接开发者从活动或者商城入口跳转到兑吧页面时,实现用户uid身份信息和积分等参数回传的统一接口url地址。通过免登录url实现开发者用户从指定商城入口直接跳转到兑吧页面,不需要再进行二次登录。 注意事项: 免登录url涉及到签名加密以及有效期验证(5分钟有效期),开发者生成免登录地址时需要有服务端动态生成 2.免登录url接口地址 因为请求兑吧的免登录url链接地址是需要开发
配置Apache监听指定的地址和端口。 概述 相关模块 相关指令 core mpm_common <VirtualHost> Listen Apache启动时,会绑定本机上的地址和端口,然后等待请求的进入。默认情况下,它会监听本机的所有地址。但是,当需要监听特定的地址或端口或地址与端口的组合,或者需要对不同的IP地址、主机名、端口作出不同的响应(如使用虚拟主机)时,就必须明确指定。 Listen指
模拟ios5的拨号键盘,带有拨号键,可以调用系统的电话功能进行打电话。只有在真机中才能测试打电话功能。 作者说:修改delegate后,可以自定义电话。 [Code4App.com]
问题内容: 我如何将expressjs服务器绑定到特定IP 就像是 等效于nodejs: 问题答案: 在调用listen时,ExpressJS 会将参数向下传递给模块,因此您的示例应该可以正常工作。 不是吗?
问题内容: 如何从C代码获取Linux上接口的IPv4地址? 例如,我想获取分配给eth0的IP地址(如果有)。 问题答案: 尝试这个: 代码示例是从这里获取的。
问题内容: 如何在接口内部获取值的地址? 我有一个结构存储在接口的list.List元素中: 但是我得到这个: 这是怎么回事?由于该结构存储在接口中,为什么我不能获得指向它的指针? 问题答案: 要了解为什么不可能这样做,考虑一下接口变量实际上是什么很有帮助。接口值占两个字,第一个描述所包含值的类型,第二个(a)保存所包含的值(如果它适合字内)或(b)指向该值的存储指针(如果该值不适合一个单词)。