Commit 17f3f7d2 by lyh3024

add api define

Change-Id: I5b36753ede8ce9ae5eb5c73599c54e3919621603
parent 1255b132
.venv
\ No newline at end of file
from django.db import models
from neomodel import StructuredNode, IntegerProperty, StringProperty, DateTimeFormatProperty, RelationshipTo, FloatProperty
# Create your models here.
class Block(StructuredNode):
hash = StringProperty(required=True)
next_block = RelationshipTo('Block', 'NEXT_BLOCK')
class Miner(StructuredNode):
address = StringProperty(required=True)
pack_date = DateTimeFormatProperty(required=True, index=True, format='%Y-%m-%d')
pack_num = IntegerProperty()
pack = RelationshipTo('Block', 'PACK')
class Transaction(StructuredNode):
hash = StringProperty(required=True, index=True)
amount = FloatProperty(required=True)
transfer_in = RelationshipTo('Account', 'TRANSFER_IN')
invoke = RelationshipTo('Contract', 'INVOKE')
class Account(StructuredNode):
address = StringProperty(required=True, index=True)
transfer_out = RelationshipTo('Transaction', 'TRANSFER_OUT')
class Contract(StructuredNode):
address = StringProperty(required=True, index=True)
from django.conf.urls import url
from block.views import *
from django.urls import path
urlpatterns = [
path('getBlockList', get_block_list),
path('getBlockTradeRank', get_block_trade_rank),
path('getBlockMinerRank', get_block_miner_rank)
]
from django.shortcuts import render
# Create your views here.
def get_block_list(request):
pass
def get_block_trade_rank(request):
pass
def get_block_miner_rank(request):
pass
from django.db import models
from neomodel import StructuredNode, StringProperty
from neomodel import StructuredNode, StringProperty, DateTimeFormatProperty, IntegerProperty, RelationshipTo
# Create your models here.
class RequestIP(StructuredNode):
request_ip = StringProperty(required=True)
region = StringProperty(required=True)
isp = StringProperty(required=True)
request_date = DateTimeFormatProperty(required=True, index=True, format='%Y-%m-%d') # 请求时间
request_num = IntegerProperty() # 请求恶意域名次数
request_domain = RelationshipTo('DomainName', 'REQUEST')
class DnsIP(StructuredNode):
dns_ip = StringProperty(required=True)
dns_ip = StringProperty(required=True, index=True)
parse_date = DateTimeFormatProperty(required=True, index=True, format='%Y-%m-%d') # 解析时间
parse_num = IntegerProperty() # 解析恶意域名次数
parse_domain = RelationshipTo('DomainName', 'PARSE')
class DomainName(StructuredNode):
domain_name = StringProperty(required=True)
domain_name = StringProperty(required=True, index=True)
ipv4_address = StringProperty(required=True)
class Ipv4Address(StructuredNode):
ipv4_address = StringProperty(required=True)
class Label(StructuredNode):
label = StringProperty(index=True)
from django.conf.urls import url
from domain.views import *
from django.urls import path
urlpatterns = [
path('getDomainList', get_domain_list),
path('getLabelRank', get_label_rank),
path('getDomainRank', get_domain_rank),
path('getRequestIpRank', get_request_ip_rank),
path('getDnsIpRank', get_dns_ip_rank),
path('getLabelList', get_label_list)
]
from django.shortcuts import render
# Create your views here.
def get_label_list(request):
pass
def get_domain_list(request):
pass
def get_label_rank(request):
pass
def get_domain_rank(request):
pass
def get_request_ip_rank(request):
pass
def get_dns_ip_rank(request):
pass
......@@ -15,7 +15,12 @@ Including another URLconf
"""
from django.contrib import admin
from django.urls import path
from django.conf.urls import include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('domain.urls')),
path('', include('route.urls')),
path('', include('block.urls'))
]
......@@ -146,6 +146,19 @@ url = "https://mirrors.aliyun.com/pypi/simple"
reference = "aliyun"
[[package]]
name = "rest-framework"
version = "99.99.99"
description = "This is a PoC for HackerOne"
category = "main"
optional = false
python-versions = ">=2.5"
[package.source]
type = "legacy"
url = "https://mirrors.aliyun.com/pypi/simple"
reference = "aliyun"
[[package]]
name = "shapely"
version = "1.7.1"
description = "Geometric objects, predicates, and operations"
......@@ -192,7 +205,7 @@ reference = "aliyun"
[metadata]
lock-version = "1.1"
python-versions = "^3.9"
content-hash = "7e3c0debe01a3cb59d1db4be08f5aee72e1e18e42e53a657503474b09cd26142"
content-hash = "cdb9a355a3f8c79c0138b5da278797f414265479b76c459f0fe7f2e293cb071b"
[metadata.files]
asgiref = [
......@@ -229,6 +242,9 @@ pytz = [
{file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
{file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
]
rest-framework = [
{file = "rest_framework-99.99.99.tar.gz", hash = "sha256:9633e081bcce42c48f898f7134d6666306767547c69b2980f1aef7ede9969dbf"},
]
shapely = [
{file = "Shapely-1.7.1-1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:46da0ea527da9cf9503e66c18bab6981c5556859e518fe71578b47126e54ca93"},
{file = "Shapely-1.7.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:4c10f317e379cc404f8fc510cd9982d5d3e7ba13a9cfd39aa251d894c6366798"},
......
......@@ -13,6 +13,7 @@ python = "^3.9"
django = "^3.2.9"
django-neomodel = "^0.0.7"
openpyxl = "^3.0.9"
rest-framework = "^99.99.99"
[tool.poetry.dev-dependencies]
......
from django.db import models
from neomodel import StructuredNode, StringProperty, IntegerProperty
from neomodel import StructuredNode, StringProperty, IntegerProperty, DateTimeFormatProperty, RelationshipTo
# Create your models here.
class RouteIp(StructuredNode):
ip = StringProperty()
country = StringProperty()
region = StringProperty()
city = StringProperty()
isp = StringProperty()
in_degree = IntegerProperty()
out_degree = IntegerProperty()
ip = StringProperty(required=True, index=True)
country = StringProperty(required=True)
province = StringProperty(required=True, index=True)
city = StringProperty(required=True)
isp = StringProperty(required=True, index=True)
route_date = DateTimeFormatProperty(required=True, index=True, format='%Y-%m-%d')
degree = IntegerProperty()
next_ip = RelationshipTo('RouteIp', 'NEXT_IP')
class FirstIp(RouteIp):
......
from django.conf.urls import url
from route.views import *
from django.urls import path
urlpatterns = [
path('getRouteParam', get_route_param),
path('getRouteList', get_route_list),
path('getRouteRank', get_route_rank)
]
from django.shortcuts import render
from django.http import JsonResponse
from datetime import datetime, timedelta
from neomodel import Q
from route.models import RouteIp, FirstIp, EndIp
from utils import tools
# Create your views here.
def get_route_param(request):
pass
def get_route_list(request):
if request.method == 'GET':
try:
first_route = request.GET.get('first_route')
end_route = request.GET.get('end_route')
from_time = request.GET.get('from_time')
to_time = request.GET.get('to_time')
if from_time and not to_time:
return JsonResponse({"Error": "to_time is null"})
if not from_time and to_time:
return JsonResponse({"Error": "from_time is null"})
from_time = tools.from_str_to_time(from_time)
to_time = tools.from_str_to_time(to_time)
if first_route:
if from_time:
resp = []
first_nodes = FirstIp.nodes.filter(Q(ip=first_route) | Q(route_date__gt=from_time) | Q(route_date__lt=to_time))
for fn in first_nodes:
pass
else:
pass
except Exception as e:
return JsonResponse({"Error": e})
def get_route_rank(request):
pass
from datetime import datetime
def from_str_to_time(t: str):
if not t:
return None
return datetime.strptime(t, "%Y-%m-%d")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment