本文整理匯總了Golang中github.com/idealeak/goserver/core/netlib.Session.RemoteAddr方法的典型用法代碼示例。如果您正苦於以下問題:Golang Session.RemoteAddr方法的具體用法?Golang Session.RemoteAddr怎麽用?Golang Session.RemoteAddr使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/idealeak/goserver/core/netlib.Session
的用法示例。
在下文中一共展示了Session.RemoteAddr方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: isBlock
func (blf *BlackListFilter) isBlock(s *netlib.Session) bool {
host, _, err := net.SplitHostPort(s.RemoteAddr())
if err != nil {
return true
}
ip := net.ParseIP(host)
blf.lock.RLock()
defer blf.lock.RUnlock()
for e := blf.blacklist.Front(); e != nil; e = e.Next() {
if e.Value.(*net.IPNet).Contains(ip) {
return true
}
}
return false
}
示例2: isConnectionOk
func (ctf *ConnectionThrottleFilter) isConnectionOk(s *netlib.Session) bool {
host, _, err := net.SplitHostPort(s.RemoteAddr())
if err != nil {
return false
}
tNow := time.Now()
value := ctf.clients.Get(host)
if value != nil {
tLast := value.(time.Time)
if tNow.Sub(tLast) < time.Duration(ctf.AllowedInterval)*time.Millisecond {
ctf.clients.Set(host, tNow)
return false
}
}
ctf.clients.Set(host, tNow)
return true
}