话不多说直接上代码

package main//导入需要的包import (    "errors"    "fmt"    "io/ioutil"    "net"    "net/http"    "os"    "strings")//获取本地机器ip列表func externalIP() (net.IP, error) {    ifaces, err := net.Interfaces()    if err != nil {        return nil, err    }    for _, iface := range ifaces {        if iface.Flags&net.FlagUp == 0 {            continue // interface down        }        if iface.Flags&net.FlagLoopback != 0 {            continue // loopback interface        }        addrs, err := iface.Addrs()        if err != nil {            return nil, err        }        for _, addr := range addrs {            ip := getIpFromAddr(addr)            if ip == nil {                continue            }            return ip, nil        }    }    return nil, errors.New("connected to the network?")}//从本地机器ip列表中找到真实ipfunc getIpFromAddr(addr net.Addr) net.IP {    var ip net.IP    switch v := addr.(type) {    case *net.IPNet:        ip = v.IP    case *net.IPAddr:        ip = v.IP    }    if ip == nil || ip.IsLoopback() {        return nil    }    ip = ip.To4()    if ip == nil {        return nil // not an ipv4 address    }    return ip}//获取本机名称func getHostname() string{    name, err := os.Hostname()    if err != nil {        panic(err)    }    return name    //fmt.Println("hostname:", name)}//发送一个post请求,传递含有变量的json数据func httpPostJson(getip string , gethostname string) {    url := "https://myurl"    method := "POST"    payload := strings.NewReader("{\"hostName\": \""+gethostname+"\",\"ip\": \""+getip+"\"}")    client := &http.Client {    }    req, err := http.NewRequest(method, url, payload)    if err != nil {        fmt.Println(err)    }    req.Header.Add("Content-Type", "application/json")    res, err := client.Do(req)    defer res.Body.Close()    body, err := ioutil.ReadAll(res.Body)    fmt.Println(string(body))}func main() {    ip, err := externalIP()    if err != nil {        fmt.Println(err)    }    fmt.Println("本机ip:",ip.String())    //把ip和hostnmae赋值给新的变量    getip := ip.String()    gethostname := getHostname()    httpPostJson(getip , gethostname)}

更多相关文章

  1. Java 多线程:volatile 变量、happens-before 关系及内存一致性
  2. 2: Zabbix5.0使用钉钉机器人报警
  3. Java 类的静态变量存放在哪块内存中?
  4. 面试官:为什么静态方法不能调用非静态方法和变量?
  5. mysql中你应该要知道的变量知识点
  6. python注释、变量、常量的学习
  7. No.6 关于变量名前加$以及不加$的区别
  8. Java中static变量作用和用法详解

随机推荐

  1. Android NDK R9 安装配置 无需Cygwin
  2. Android 4.4源码下载与编译
  3. Android Studio错误“AppCompat不支持主
  4. 如何使用2个旋转圆圈获得与ICS相同的未定
  5. 有关WebView的一些使用方法
  6. 将不同的Android项目连接到现有的Google-
  7. Linux上杀死eclipse进程
  8. 用vs2015开发Android靠谱吗
  9. Android笔记(9)---Fragment的生命周期以及
  10. Android4.X物理按键监听