Metadata-Version: 2.4
Name: dns-observe
Version: 0.7.0
Summary: a simple client to observe dns pollution network situation under Great Firewall.
Author-email: xavier skip <xavierskip@gmail.com>
Project-URL: Homepage, https://github.com/xavierskip/dns-observe
Project-URL: Bug Tracker, https://github.com/xavierskip/dns-observe/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Dynamic: license-file

[![publish](https://github.com/xavierskip/dns-observe/actions/workflows/publish-to-test-pypi.yml/badge.svg?event=push)](https://github.com/xavierskip/dns-observe/actions) [![PyPI version](https://badge.fury.io/py/dns-observe.svg?icon=si%3Apython)](https://badge.fury.io/py/dns-observe)

# dns-observe
a simple client to observe dns pollution network situation under The Great Firewall of China.

So far, only type A DNS queries have been implemented.

## Installing
Install and update using [pip](https://pypi.org/project/dns-observe/):
`pip install dns-observe`

## usage
cli
```
> dns-observe -h
usage: dns-observe [-h] [-s DNS_SERVER] [-t LISTEN_TIME] [-v] domain

Observing DNS pollution

positional arguments:
  domain                query domain

options:
  -h, --help            show this help message and exit
  -s DNS_SERVER, --dns_server DNS_SERVER
                        DNS server (default: 1.1.1.1)
  -t LISTEN_TIME, --listen_time LISTEN_TIME
                        listen time (default: 5)
  -v, --version         show program's version number and exit
```

python:

`> python -m dns_observe api.openai.com`

```python
from dns_observe import DNSQuery, RecordType
dns = DNSQuery('1.1.1.1')
dns.query('api.openai.com')
dns.query('claude.ai', RecordType.AAAA)
```

output:
```
- Time: 2024-11-22 11:18:16.977688, Name: api.openai.com, TTL: 153, A: 103.56.16.112
- Time: 2024-11-22 11:18:16.978715, Name: api.openai.com, TTL: 206, A: 192.133.77.145
┌ Time: 2024-11-22 11:18:17.140652, Name: api.openai.com, TTL: 46, A: 162.159.140.245
└ Time: 2024-11-22 11:18:17.140652, Name: api.openai.com, TTL: 46, A: 172.66.0.243
```

### How to Packaging Python Projects
https://packaging.python.org/en/latest/tutorials/packaging-projects/

```
python -m build

# testpypi
py -m twine upload --repository testpypi dist/*

# pypi
py -m twine upload dist/*
```

## dev

`> pip install -e .`

### test

`> python tests/test_run.py`
