文档章节

go 获取本地ip地址

solate
 solate
发布于 2016/08/15 18:42
字数 116
阅读 35
收藏 0

获取外网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 && !ipnet.IP.IsLoopback() {
			if ipnet.IP.To4() != nil {
				fmt.Println(ipnet.IP.String())
			}

		}
	}

}

改为方法调用

func getClientIp() (string ,error) {
	addrs, err := net.InterfaceAddrs()

	if err != nil {
		return err
	}

	for _, address := range addrs {
		// 检查ip地址判断是否回环地址
		if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
			if ipnet.IP.To4() != nil {
				return ipnet.IP.String()
			}

		}
	}

	return "", errors.New("Can not find the client ip address!")

}


© 著作权归作者所有

共有 人打赏支持
solate
粉丝 7
博文 111
码字总数 87151
作品 0
成都
程序员
BAT批处理修改IP地址和DNS配置

1、Windows XP系统BAT批处理修改IP地址和DNS。 新建:文本文档,复制下面代码到文本文档,保存为Set IP Address.bat,双击运行,即可! @echo off echo ** echo * 修改IP地址、DNS * echo Wi...

yhw85
2013/02/05
0
0
Mikro Tik || ROS脚本基础教程

更新中......... Mikro Tik ROS脚本基础教程 从0基础学习ROS脚本 本教程为ros脚本基础教程 会集合大量例子 实例讲解 教程基于6.X版本讲解(和5.x有点不同 不影响学习) global 声明全局变量 ...

浠朢
2016/11/03
0
0
C#实现网段扫描

摘要 想必大家对小榕时光等扫描器都非常熟悉了,有没有自己写一个的冲动。最近微软推实施了.NET战略方案,C#是主推语言,你们是否有兴趣用C#来实现对局域网IP地址的扫描,尝试一下自己写的快...

晨曦之光
2012/03/09
117
0
面向基础系列之---Java网络编程---网络连接组件的使用(InetAddress)

这个系列是我一直想写的,因为从入职第一年的第一个月开始(那时还在zte),我就买了网络上唯一的一本,写Java网络的书籍:《Java网络编程》。当时功底一般,感觉看起来,还是很多云里雾里,...

心中的理想乡
09/10
0
0
11、linux网络管理介绍

1、通讯协议: TCP/IP:四层模型,分别是:物理层、网络层、传输层、应用层 ISO/OSI:七层模型:分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 上层调用下层接口,下...

嘀充值成功
2017/12/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

windows下Git BASH安装

1.从git官网下载一个git安装包,官网下载地址https://www.git-scm.com/downloads 2.双击安装程序,进入欢迎界面点击【Next >】...》finish 3.空白处点击鼠标右键选择Git Bash Here或点击开始...

15834278076
25分钟前
2
0
strpos

一、前方有坑 php某些自带函数,如果使用不当,也会坑得你人仰马翻。比如:strpos() 先了解一下strpos()函数是干啥的。 strpos — 查找字符串首次出现的位置 用法: int strpos ( string $hay...

dragon_tech
28分钟前
1
0
Spark DAG概述

一、 DAG定义 DAG每个节点代表啥?代表的一个RDD 这里再次复习RDD的5大特性 一组分片(Partition),即数据集的基本组成单位。对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算...

张泽立
28分钟前
0
0
防抖和节流

浏览器的一些事件,如:resize,scroll,keydown,keyup,keypress,mousemove等。这些事件触发频率太过频繁,绑定在这些事件上的回调函数会不停的被调用。会加重浏览器的负担,导致用户体验...

tianyawhl
39分钟前
1
0
mysql出现Waiting for table metadata lock的解决方法

查询某一个表时,一直没有显示数据,于是就show processlist; 发现有表已经被锁了,关掉了之前的查询语句可以看到 这时候需要查看未提交的事务 select trx_state, trx_started, trx_mysql_t...

bobway
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部