文档章节

go 获取本地ip地址

solate
 solate
发布于 2016/08/15 18:42
字数 116
阅读 31
收藏 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
博文 110
码字总数 82372
作品 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
11、linux网络管理介绍

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

嘀充值成功
2017/12/10
0
0
C#服务器获取客户端IP地址以及归属地探秘

背景:博主本是一位Windows桌面应用程序开发工程师,对网络通信一知半解。一日老婆逛完某宝,问:“为什么他们知道我的地址呢,他们是怎么获取我的地址的呢?” 顺着这个问题我们的探秘开始:...

张立达
2017/05/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
0
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
18
4
centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部