falcon-open 问题解决小扩展

package main

import (
	"fmt"
	"net"
	"strings"
	"sync"
)

type List struct {
	Lock   sync.Mutex
	IPList map[string]bool
}

var CheckList *List = NewList()

func main() {
	for _, k := range []string{"127.0.0.1", "192.168.10.1", "172.18.80.1"} {
		CheckList.Add(k)
	}
	conn, _ := net.Dial("tcp", "127.0.0.1:1789")
	if !CheckList.IsExist(conn) {
		fmt.Println("没有在白名单")
		conn.Close()
		return
	}
}

func NewList() *List {
	return &List{IPList: make(map[string]bool)}

}

func (self *List) Add(s string) {
	if self.IPList[s] {
		return
	}
	self.Lock.Lock()
	self.IPList[s] = true
	self.Lock.Unlock()
}
func (self *List) IsExist(conn net.Conn) bool {
	ip := strings.Split(conn.RemoteAddr().String(), ":")[0]
	return self.IPList[ip]
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-15 07:17:49

falcon-open 问题解决小扩展的相关文章

小扩展大用处,自己扩展一个ForeachRead吧

是否用过IList的扩展方法 Foreach,而郁闷IEnumerable没有这个扩展?(没用过??用用吧,真的很方便,可以少好几行呢!!) 是否为了有一个索引而不得不用 for 而不能用 foreach?? 那这个扩展方法适合你: public static void ForEachRead<T>(this IEnumerable<T> dx,Action<int,T> act) { int i = 0; foreach (var item in dx) { act(

AJAX小扩展

ajax请求的时候,会碰到这种情况,例如需要在每个ajax请求都带上相同的验证参数,是否有方法能够自动的将这些参数在ajax请求的时候自动带上? 我们都知道jQuery的ajaxSetup函数可以在ajax发起请求前,修改ajax请求的默认设置选项,之后执行的ajax的请求,如果对应的选项参数没有设置,将使用更改后的默认设置.设置的选项会存放于jQuery.ajaxSettings中. $.ajaxSetup({ data: { token: "XXXX" //在每次ajax请求带上t

Java基础知识强化81:Math类random()方法的小扩展(控制产生目的数字的概率)

1. Math.random()方法: Math.random()出现的数据是0.0<= x < 1.0之间,随机出现一个数据Math.random()>0.1概率是0.9 那么如下: Math.random()>0.1? 2:4  上面表示出现数字2的概率为0.9,出现数字4的概率为0.1 2. 上面出现的是两个数,如果我们案例需求是多个数,控制概率出现,该怎么办呢? 下面是一个案例: 做一个翻宝程序,通过返回数字0-5来判断中奖情况, 012345,这几个数字的出现的概率是0出

问题解决小技巧集锦

1. [Q]eclipse 某个project前面存在一个大红感叹号? [R]该project的build path上引用的jar在本地磁盘的lib目录下不存在,或者说起引用的JRE Library路径在本地磁盘不存在: [A]查看build path的配置,对前面存在红叉的jar 或者 Library 配置先remove 再重新添加本地磁盘存在的.

dapper的一个小扩展以支持dataset

废话不多,直接上方法 1 public static DataSet ExecuteDataSet(this IDbConnection cnn, IDbDataAdapter adapter, string sql, object param = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null) 2 { 3 var ds = new DataSet(); 4 var

dede中各种问题解决小经验

如果没有描述  在dede   核心  ---   批量维护  ---  自动摘要 网站 data/tplcache 生成的缓存文件占用空间 经常检查一下 打开网页出现弹出广告一般是浏览器被劫持了,需要体检一下,修复问题后重启就可以了. xampp 出现apache启动不了的问题可以卸载xampp然后再重新安装 xampp卸载方法http://wenku.baidu.com/view/eb10413b87c24028915fc392.html (运行uninstall_xampp.bat文件,备

h5的一些小扩展

(1)地理定位 在HTML规范中,增加了获取用户地理信息的API,这样使得我们可以基于用户位置开发互联网应用,即基于位置服务 (Location Base Service) 获取当前地理信息 navigator.geolocation.getCurrentPosition(successCallback, errorCallback) 重复获取当前地理信息 navigator. geolocation.watchPosition(successCallback, errorCallback) 当

KMP小扩展,找出子串在主串中出现的所有位置

KMP算法能够高效地匹配字符串,找出子串(T串)在主串(S串)中出现的首个位置的原算法网上已经有很多优秀的博文进行详细讲解,这里就不多赘述. 这篇博文主要是对KMP原算法稍作改动,使其能够在主串中把所有匹配的主串找出来. 找出首个匹配的算法好弄,next数组求出来后直接用来匹配,直到出现完全匹配的情况的时候就停止搜索把答案扔出来就行,但是想把所有T串找出来的话就得完全把S串搜完, 就算已经在S串中找到一个T串后也是不能马上停止搜索的. 难点就在已经完全匹配了一个T串以后怎么继续进行下一个匹配.

12 款不能少的使网页浏览获得的最佳体验Chrome 扩展

原文地址:http://whosmall.com/?post=414 本文标签: Chrome扩展 网页浏览体验 引擎划词翻译工具 Chrome浏览器 相信不少朋友和我一样,每安装新的操作系统之后,都会使用 Safari/IE 下载 Chrome 浏览器,然后将后者作为主力上网浏览器,而将前者束之高阁.毕竟从体验上说,Chrome拥有快速流畅的浏览体验,当然强大丰富的扩展也是让我一见倾心的关键. 此前我们向各位介绍了数款颇受欢迎的 Chrome 扩展,而今天笔者我起一回私心,给大家安利一些我正在