add dns result
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-06-11 19:23:14 +03:00
parent c992da5ac2
commit 706dc195d3
2 changed files with 35 additions and 1 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ steps:
repo: git.sedletskiy.ru/kosechok/testmontools repo: git.sedletskiy.ru/kosechok/testmontools
tags: tags:
- latest - latest
# - ${CI_COMMIT_SHA:0:8} - ${CI_COMMIT_SHA:0:8}
username: username:
from_secret: REGISTRY_USER from_secret: REGISTRY_USER
password: password:
+34
View File
@@ -113,6 +113,28 @@ def run_curl(url: str, headers_only: bool = False) -> dict:
'body': body 'body': body
} }
def run_dns(host: str, record_types=None) -> dict:
if record_types is None:
record_types = ['A', 'AAAA']
results = {}
all_ips = []
for rtype in record_types:
result = subprocess.run(
['dig', '+short', rtype, host],
stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True
)
records = [line.strip() for line in result.stdout.splitlines() if line.strip()]
results[rtype] = records
if rtype in ('A', 'AAAA'):
all_ips.extend(records)
return {
'resolved_host': host,
'records': results,
'all_ips': all_ips
}
# ── Endpoints ──────────────────────────────────────────────────────────────── # ── Endpoints ────────────────────────────────────────────────────────────────
@@ -143,6 +165,18 @@ def curl():
url = raw if raw.startswith(('http://', 'https://')) else f'https://{raw}' url = raw if raw.startswith(('http://', 'https://')) else f'https://{raw}'
return jsonify({'input': raw, **run_curl(url, headers_only=bool(data.get('headers')))}) return jsonify({'input': raw, **run_curl(url, headers_only=bool(data.get('headers')))})
@app.route('/testmontools/dns', methods=['POST'])
def dns():
data = request.get_json()
raw, host = parse_input(data or {})
if not host:
return jsonify({'error': 'Field "url" or "host" is required'}), 400
record_types = data.get('types') # optional, e.g. ["A", "AAAA", "MX", "TXT", "CNAME", "NS"]
if record_types:
record_types = [t.upper() for t in record_types]
return jsonify({'input': raw, **run_dns(host, record_types)})
@app.route('/testmontools/all', methods=['POST']) @app.route('/testmontools/all', methods=['POST'])
def check_all(): def check_all():