主页 > 知识库 > Go语言RPC Authorization进行简单ip安全验证的方法

Go语言RPC Authorization进行简单ip安全验证的方法

热门标签:AI电销 Linux服务器 网站排名优化 地方门户网站 百度竞价排名 呼叫中心市场需求 服务外包 铁路电话系统

本文实例讲述了Go语言RPC Authorization进行简单ip安全验证的方法。分享给大家供大家参考。具体分析如下:

前言:写网络服务,总要考虑安全机制,对ip和网段进行判断是最简单的一个验证机制。之后想做一个类似注册式的安全验证机制,既可以减少配置文件的麻烦,又可以很好的进行安全管理。

直接上代码:

复制代码 代码如下:
package main
import(
    "net"
    "fmt"
    "time"
    "strings"
)
func main(){
    IP_ARRAY := "192.168.1.234,192.168.1.47,192.168.2.0/28"
    servPort:=":7272"
    l,err := net.Listen( "tcp",servPort )
    if err != nil {
        fmt.Printf( "Listen is error" )
        return
    }
    allowList :=strings.Split( IP_ARRAY,"," )
    for{
        conn,err:=l.Accept()
        if err != nil {
            fmt.Printf( "start connect  is error" )
            return
        }
        ipAddr:=conn.RemoteAddr()
        Addr := strings.Split( ipAddr.String(), ":")
        rAddr := net.ParseIP( Addr[0] )
        var authorized bool = false
        for v := range allowList{
            _,ipNet,err := net.ParseCIDR( allowList[v] )
            if err != nil{
                fmt.Printf( "parse ip net error" )
                ipHost := net.ParseIP( allowList[v])
                if ipHost != nil{
                   if ipHost.Equal( rAddr ) {
                      authorized =true
                   }
                }else{
                    fmt.Printf( "ip list error" )
                }
            }else{
                fmt.Printf( "Contains ip " )
                if ipNet.Contains( rAddr ) {
                    authorized =true
                }
            }
        }
        if authorized == true{
            curTime:=time.Now()
            fmt.Printf( curTime.Format( "2006-01-02 15:04:05" )  )
            conn.Write( []byte(curTime.Format( "2006-01-02 15:04:05" ) ) )
            time.Sleep( 10)
        }else{
            conn.Close()
        }
    }
}

希望本文所述对大家的Go语言程序设计有所帮助。

您可能感兴趣的文章:
  • Go语言中函数的参数传递与调用的基本方法
  • Go语言调用其它程序并获得程序输出的方法
  • go和python调用其它程序并得到程序输出
  • golang简单读写文件示例
  • golang实现通过smtp发送电子邮件的方法
  • golang基于websocket实现的简易聊天室程序
  • golang使用sort接口实现排序示例
  • golang守护进程用法示例
  • golang模板template自定义函数用法示例
  • golang两种调用rpc的方法

标签:铜川 衡水 黄山 湖南 崇左 仙桃 湘潭 兰州

巨人网络通讯声明:本文标题《Go语言RPC Authorization进行简单ip安全验证的方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266