国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

Go語言RPC Authorization進行簡單ip安全驗證的方法

2020-04-01 19:17:57
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Go語言RPC Authorization進行簡單ip安全驗證的方法,實例分析了Go語言進行ip驗證的技巧,需要的朋友可以參考下
 

本文實例講述了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語言程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵩明县| 日土县| 锦屏县| 靖西县| 南岸区| 铜陵市| 穆棱市| 怀柔区| 宕昌县| 高要市| 宝鸡市| 黎城县| 讷河市| 龙海市| 巨野县| 芦溪县| 乌海市| 招远市| 曲沃县| 图木舒克市| 泰顺县| 平山县| 富顺县| 维西| 慈溪市| 渑池县| 蒲城县| 庆阳市| 修水县| 土默特右旗| 富宁县| 临沧市| 河源市| 宜春市| 墨竹工卡县| 大足县| 深水埗区| 永修县| 阿拉尔市| 郯城县| 湛江市|