mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	IP名单增加区域和ISP显示
This commit is contained in:
		@@ -148,6 +148,22 @@ func (this *IndexAction) RunGet(params struct {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// 区域 & ISP
 | 
				
			||||||
 | 
							var region = ""
 | 
				
			||||||
 | 
							var isp = ""
 | 
				
			||||||
 | 
							if len(item.IpFrom) > 0 && len(item.IpTo) == 0 {
 | 
				
			||||||
 | 
								regionResp, err := this.RPC().IPLibraryRPC().LookupIPRegion(this.AdminContext(), &pb.LookupIPRegionRequest{Ip: item.IpFrom})
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									this.ErrorPage(err)
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								var ipRegion = regionResp.IpRegion
 | 
				
			||||||
 | 
								if ipRegion != nil {
 | 
				
			||||||
 | 
									region = ipRegion.Summary
 | 
				
			||||||
 | 
									isp = ipRegion.Isp
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		itemMaps = append(itemMaps, maps.Map{
 | 
							itemMaps = append(itemMaps, maps.Map{
 | 
				
			||||||
			"id":             item.Id,
 | 
								"id":             item.Id,
 | 
				
			||||||
			"ipFrom":         item.IpFrom,
 | 
								"ipFrom":         item.IpFrom,
 | 
				
			||||||
@@ -167,6 +183,8 @@ func (this *IndexAction) RunGet(params struct {
 | 
				
			|||||||
			"sourceNode":     sourceNodeMap,
 | 
								"sourceNode":     sourceNodeMap,
 | 
				
			||||||
			"list":           listMap,
 | 
								"list":           listMap,
 | 
				
			||||||
			"policy":         policyMap,
 | 
								"policy":         policyMap,
 | 
				
			||||||
 | 
								"region":         region,
 | 
				
			||||||
 | 
								"isp":            isp,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	this.Data["items"] = itemMaps
 | 
						this.Data["items"] = itemMaps
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -104,6 +104,22 @@ func (this *ItemsAction) RunGet(params struct {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// 区域 & ISP
 | 
				
			||||||
 | 
							var region = ""
 | 
				
			||||||
 | 
							var isp = ""
 | 
				
			||||||
 | 
							if len(item.IpFrom) > 0 && len(item.IpTo) == 0 {
 | 
				
			||||||
 | 
								regionResp, err := this.RPC().IPLibraryRPC().LookupIPRegion(this.AdminContext(), &pb.LookupIPRegionRequest{Ip: item.IpFrom})
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									this.ErrorPage(err)
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								var ipRegion = regionResp.IpRegion
 | 
				
			||||||
 | 
								if ipRegion != nil {
 | 
				
			||||||
 | 
									region = ipRegion.Summary
 | 
				
			||||||
 | 
									isp = ipRegion.Isp
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		itemMaps = append(itemMaps, maps.Map{
 | 
							itemMaps = append(itemMaps, maps.Map{
 | 
				
			||||||
			"id":             item.Id,
 | 
								"id":             item.Id,
 | 
				
			||||||
			"ipFrom":         item.IpFrom,
 | 
								"ipFrom":         item.IpFrom,
 | 
				
			||||||
@@ -118,6 +134,8 @@ func (this *ItemsAction) RunGet(params struct {
 | 
				
			|||||||
			"sourceSet":      sourceSetMap,
 | 
								"sourceSet":      sourceSetMap,
 | 
				
			||||||
			"sourceServer":   sourceServerMap,
 | 
								"sourceServer":   sourceServerMap,
 | 
				
			||||||
			"lifeSeconds":    item.ExpiredAt - time.Now().Unix(),
 | 
								"lifeSeconds":    item.ExpiredAt - time.Now().Unix(),
 | 
				
			||||||
 | 
								"region":         region,
 | 
				
			||||||
 | 
								"isp":            isp,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	this.Data["items"] = itemMaps
 | 
						this.Data["items"] = itemMaps
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -118,6 +118,10 @@ Vue.component("ip-list-table", {
 | 
				
			|||||||
					<keyword :v-word="keyword">{{item.ipFrom}}</keyword> <span> <span class="small red" v-if="item.isRead != null && !item.isRead"> New </span> <a :href="'/servers/iplists?ip=' + item.ipFrom" v-if="vShowSearchButton" title="搜索此IP"><span><i class="icon search small" style="color: #ccc"></i></span></a></span>
 | 
										<keyword :v-word="keyword">{{item.ipFrom}}</keyword> <span> <span class="small red" v-if="item.isRead != null && !item.isRead"> New </span> <a :href="'/servers/iplists?ip=' + item.ipFrom" v-if="vShowSearchButton" title="搜索此IP"><span><i class="icon search small" style="color: #ccc"></i></span></a></span>
 | 
				
			||||||
					<span v-if="item.ipTo.length > 0"> - <keyword :v-word="keyword">{{item.ipTo}}</keyword></span></span>
 | 
										<span v-if="item.ipTo.length > 0"> - <keyword :v-word="keyword">{{item.ipTo}}</keyword></span></span>
 | 
				
			||||||
					<span v-else class="disabled">*</span>
 | 
										<span v-else class="disabled">*</span>
 | 
				
			||||||
 | 
										<div v-if="item.region != null && item.region.length > 0">
 | 
				
			||||||
 | 
											<span class="grey small">{{item.region}}</span>
 | 
				
			||||||
 | 
											<span v-if="item.isp != null && item.isp.length > 0 && item.isp != '内网IP'" class="grey small"><span class="disabled">|</span> {{item.isp}}</span>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
					<div v-if="item.createdTime != null">
 | 
										<div v-if="item.createdTime != null">
 | 
				
			||||||
						<span class="small grey">添加于 {{item.createdTime}}
 | 
											<span class="small grey">添加于 {{item.createdTime}}
 | 
				
			||||||
							<span v-if="item.list != null && item.list.id > 0">
 | 
												<span v-if="item.list != null && item.list.id > 0">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,10 @@
 | 
				
			|||||||
<first-menu>
 | 
					<first-menu>
 | 
				
			||||||
    <menu-item href="/servers/iplists" code="index">所有IP</menu-item>
 | 
					    <menu-item href="/servers/iplists" code="index">IP列表</menu-item>
 | 
				
			||||||
 | 
					    <span class="disabled item">|</span>
 | 
				
			||||||
    <menu-item href="/servers/iplists/lists?type=black" :active="type == 'black'">公共黑名单</menu-item>
 | 
					    <menu-item href="/servers/iplists/lists?type=black" :active="type == 'black'">公共黑名单</menu-item>
 | 
				
			||||||
    <menu-item href="/servers/iplists/lists?type=white" :active="type == 'white'">公共白名单</menu-item>
 | 
					    <menu-item href="/servers/iplists/lists?type=white" :active="type == 'white'">公共白名单</menu-item>
 | 
				
			||||||
    <span class="item disabled" v-if="type.length > 0">|</span>
 | 
					    <span class="item disabled" v-if="type.length > 0">|</span>
 | 
				
			||||||
    <menu-item @click.prevent="createList" v-if="type.length > 0">[创建]</menu-item>
 | 
					    <menu-item @click.prevent="createList" v-if="type.length > 0">[创建]</menu-item>
 | 
				
			||||||
    <span class="item disabled" v-if="type.length > 0">|</span>
 | 
					    <span class="item disabled" v-if="type.length > 0">|</span>
 | 
				
			||||||
    <span class="item" v-if="type.length > 0"><tip-icon content="可以在WAF策略里直接引用这些公用名单。"></tip-icon></span>
 | 
					    <span class="item" v-if="type.length > 0"><tip-icon content="全局名单自动生效;非全局名单可以在WAF策略里引用。"></tip-icon></span>
 | 
				
			||||||
</first-menu>
 | 
					</first-menu>
 | 
				
			||||||
@@ -21,7 +21,7 @@
 | 
				
			|||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>是否全局</td>
 | 
					            <td>全局有效</td>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                <checkbox name="isGlobal" checked="checked"></checkbox>
 | 
					                <checkbox name="isGlobal" checked="checked"></checkbox>
 | 
				
			||||||
                <p class="comment">如果选择为全局有效,则所有服务都自动使用此名单,否则只有在WAF策略中绑定此名单后才会生效。</p>
 | 
					                <p class="comment">如果选择为全局有效,则所有服务都自动使用此名单,否则只有在WAF策略中绑定此名单后才会生效。</p>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,8 +15,8 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="ui field">
 | 
					        <div class="ui field">
 | 
				
			||||||
            <div class="ui checkbox">
 | 
					            <div class="ui checkbox">
 | 
				
			||||||
                <input type="checkbox" name="globalOnly" value="1" v-model="globalOnly"/>
 | 
					                <input type="checkbox" name="globalOnly" value="1" v-model="globalOnly" id="global-only-checkbox"/>
 | 
				
			||||||
                <label>自动拦截名单</label>
 | 
					                <label for="global-only-checkbox">自动拦截名单</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="ui field" v-if="countUnread > 0">
 | 
					        <div class="ui field" v-if="countUnread > 0">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
        </td>
 | 
					        </td>
 | 
				
			||||||
    </tr>
 | 
					    </tr>
 | 
				
			||||||
    <tr>
 | 
					    <tr>
 | 
				
			||||||
        <td>是否全局</td>
 | 
					        <td>全局有效</td>
 | 
				
			||||||
        <td>
 | 
					        <td>
 | 
				
			||||||
            <span v-if="list.isGlobal" class="green">Y</span>
 | 
					            <span v-if="list.isGlobal" class="green">Y</span>
 | 
				
			||||||
            <span v-else class="disabled">N</span>
 | 
					            <span v-else class="disabled">N</span>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user