首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Golang获取随机端口和本机ip地址

Golang获取随机端口和本机ip地址

作者头像
李海彬
发布于 2018-03-20 06:04:15
发布于 2018-03-20 06:04:15
4.5K00
代码可运行
举报
文章被收录于专栏:Golang语言社区Golang语言社区
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
l, _ := net.Listen("tcp", ":0") // listen on localhost
	port := l.Addr().(*net.TCPAddr).Port
	ip := l.Addr().(*net.TCPAddr).IP
	fmt.Println(ip, port)

	ifaces, _ := net.Interfaces()
	// handle err
	for _, i := range ifaces {

		addrs, _ := i.Addrs()
		// handle err
		for _, addr := range addrs {			switch v := addr.(type) {
			case *net.IPAddr:
				fmt.Println(v.IP)
			}

		}
	}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
go: 获取所有网卡名和IP地址
直接上代码 func GetClientIp(filter string) (string, error) { interfaces, err := net.Interfaces() if err != nil { return "", err } nameIPS := map[string]string{} names := []string{} for _, i := range interfaces { name := i
超级大猪
2021/12/24
4.4K0
Go 获取 IP 地址
使用 net 包可以获取本地机器的 IP 地址。以下是一个获取本地 IP 地址的简单示例:
孟斯特
2023/11/29
1.2K0
Go 获取 IP 地址
Go net 包的使用
对于 IP、TCP、UDP、socket 等协议,封装了下列函数返回对应协议的连接
dandelion1990
2023/12/31
2420
Go net 包的使用
net
net 包提供了可移植的网络i/o接口,包括TCP/IP、UDP、域名解析和Unix域socket
酷走天涯
2019/06/11
1.2K0
net
《Network Programming with Go》阅读重点备忘(一)
最近读了一本老外写的电子书《Network Programming with Go》,感觉写得还可以,在这里将书中一些重点记录一下以备忘。 架构 跟其它书不同,这本书的第一章主要讲了分布式系统与传统单机系统在架构层面的区别。其中有4节我觉得还挺重要的,设计分布式系统时可以多参考这些方面。 ###Points of Failure### Distributed applications run in a complex environment. This makes them much more pr
jeremyxu
2018/05/10
1.3K0
内网隧道之iox
github:https://github.com/EddieIvan01/iox
中龙技术
2022/09/29
4.9K0
内网隧道之iox
socks5协议原理学习
socks是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。根据OSI七层模型来划分,SOCKS属于会话层协议,位于表示层与传输层之间。 当防火墙后的客户端要访问外部的服务器时,就跟socks代理服务器连接。该协议设计之初是为了让有权限的用户可以穿过过防火墙的限制,使得高权限用户可以访问外部资源。经过10余年的时间,大量的网络应用程序都支持socks5代理。 这个协议最初由David Koblas开发,而后由NEC的Ying-Da Lee将其扩展到版本4,最新协议是版本5,与前一版本相比,socks5做了以下增强:
黑白天安全
2021/03/16
13.1K0
socks5协议原理学习
海量日志实时收集系统架构设计与go语言实现
日志收集系统应该说是到达一定规模的公司的标配了,一个能满足业务需求、运维成本低、稳定的日志收集系统对于运维的同学和日志使用方的同学都是非常nice的。然而这时理想中的日志收集系统,现实往往不是这样的...本篇的主要内容是:首先吐槽一下公司以前的日志收集和上传;介绍新的实时日志收集系统架构;用go语言实现。澄清一下,并不是用go语言实现全部,比如用到卡夫卡肯定不能重写一个kafka吧...
用户1432189
2018/09/05
1.2K0
海量日志实时收集系统架构设计与go语言实现
golang源码分析:goreplay
在使用goreplay完成流量录制到es后( mac 上学习k8s系列(52)goreplay流量录制),总有一个疑问,它的具体实现原理是什么?它那么多参数,我应该如何组合使用呢?当一件事觉得很难理解的时候,那就撸下源码,始终要相信任何事物都有一个极其简单的内核。我们还是从main函数开始,代码位于:gor.go,核心的就下面几行
golangLeetcode
2022/12/17
4320
golang源码分析:goreplay
Go整合gopsutils监控系统性能指标参数
闫同学
2023/11/23
2660
Go语言简单的TCP编程
前期准备 ---- 需要import "net"包 IP类型,其中一个重要的方法是IP.ParseIP(ipaddr string)来判断是否是合法的IP地址 TCP Client ---- func (c *TCPConn) Write(b []byte) (n int, err os.Error)用于发送数据,返回发送的数据长度或者返回错误,是TCPConn的方法 func (c *TCPConn) Read(b []byte) (n int, err os.Error)用于接收数据,返回接收的长度或者
李海彬
2018/03/26
1.2K0
Go语言实现的简单网络端口扫描代码
package main import ( "net" "fmt" "os" "runtime" "time" "strconv" ) func loop(startport, endport int, inport chan int) { for i := startport; i <= endport; i++{ inport <- i } } func scanner(inport, outport
大师级码师
2021/11/01
4880
Golang语言 Socket
1. Socket 简介 常用的 Socket 类型有两种:流式 Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。 流式是一种面向连接的 Socket,针对于面向连接的 TCP 服务应用; 数据报式 Socket 是一种无连接的 Socket,对应于无连接的 UDP 服务应用 2. 网络中的进程之间如何通过 Socket 通信呢? 网络层的“ip 地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用 三元组(ip 地址,
李海彬
2018/03/21
8000
007-golang-GO 编程高手的五个阶段
第一个阶段(菜鸟): 刚刚学习了这门语言。 已经通过一些教程或者培训班了解基本的语法,可以写短的代码片段。
上善若水.夏
2018/09/28
1.2K0
go client http post upload上传及 server 参数获取
首先需要知道client是如何通过 http 协议 实现信息和参数的传递,以及server是怎么接受参数.
solate
2019/07/22
5.6K0
go 获取本地ip地址
获取外网ip package main import ( "fmt" "net" "os" ) func main() { addrs, err := net.InterfaceAddrs() if err != nil { fmt.Println(err) os.Exit(1) } for _, address := range addrs { // 检查ip地址判断是否回环地址 if ipnet, ok := address.(*net.IPNet); ok
solate
2019/07/22
24.3K1
go 的入门之路 Socket 编程
服务端监听本地IP(127.0.0.1)7777端口。当有客户端连接时,获得一个conn 对象,coon 对象是 interface Conn的实现者,
地球流浪猫
2018/08/02
4710
Golang 高性能网络库 evio 源码解析
evio 是一个基于事件驱动的网络框架,它非常轻量而且相比 Go net 标准库更快。其底层使用epoll 和 kqueue 系统调度实现。
IT大咖说
2021/04/08
1.6K0
Go语言基于Socket编写服务器端与客户端通信的实例
在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: package main import ( "fmt" "net" "log" "os" ) func main() {
李海彬
2018/03/23
2.3K0
转--Go语言基于Socket编写服务器端与客户端通信的实例
在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: 代码如下: package main import ( "fmt" "net" "log" "os" ) func main()
李海彬
2018/03/22
1.3K0
相关推荐
go: 获取所有网卡名和IP地址
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验