andikaputradev/nik-checker
GitHub: andikaputradev/nik-checker
基于 Go 开发的印尼国民身份证号(NIK)离线验证与信息解析 CLI 工具,通过内置区域数据将 16 位 NIK 解码为完整的人口与地区信息。
Stars: 6 | Forks: 1
# NIK Checker Premium
[](https://go.dev)
[](LICENSE)
用于验证并显示印尼 KTP **国民身份证号 (NIK)** 完整信息的 CLI 应用程序。用户输入 NIK,程序将以表格格式显示人口信息。
## 功能
- **交互式输入**:通过终端直接输入 16 位 NIK。
- **严格验证**:检查输入长度、数字格式、月份范围(01 至 12),以及出生日期的有效性(最大为 31,30 天月份的规则,2 月最大为 29)。
- **自动纠正**:如果日期代码大于 40,则性别设定为女性,出生日期减去 40。
- **离线区域查询**:省份、县/市、区和邮政编码从 `data.json` 中提取。
- **简洁的表格输出**:所有人口信息以结构化的表格格式显示。
## 项目结构
```
nik-checker/
├── cmd/nik-checker/main.go Titik masuk program
├── internal/
│ ├── data/loader.go Pemuat dan pencari data wilayah
│ ├── nik/parser.go Validasi dan parsing NIK
│ └── output/formatter.go Render tabel (dan JSON opsional)
├── data.json Data wilayah lengkap
├── go.mod
├── go.sum
├── LICENSE
└── README.md
```
## 安装
```
git clone https://github.com/andikaputradev/nik-checker.git
cd nik-checker
go build -o nik-checker ./cmd/nik-checker/
```
## 用法
运行程序,然后在提示时输入 NIK。
```
./nik-checker
Input NIK: 3273014106960002
```
程序将显示如下示例的输出。
## 输出示例
```
Input NIK: 3273014106960002
--------------------------------------------------
NIK : 3273014106960002
Tanggal Lahir : 1/06/96
Jenis Kelamin : PEREMPUAN
Provinsi : JAWA BARAT
Kab/Kota : KOTA BANDUNG
Kecamatan : SUKASARI
Kode Pos : 40151
Uniqcode : 0002
--------------------------------------------------
```
## 技术细节
**性别和出生日期纠正**
NIK 的第 7 和第 8 位数字表示日期 (DD)。如果 DD 的值大于 40,则性别设定为女性,实际出生日期计算为 DD 减去 40。例如:值 41 被解释为出生日期为 1 号的女性。
**日历验证**
月份必须在 01 到 12 的范围内。日期不能超过相关月份的限制(4 月、6 月、9 月和 11 月最多为 30 天;2 月最多为 29 天)。
**无大量内存分配的区域查询**
区域数据以原始 byte slice 存储。查找使用 `jsonparser.GetString` 而无需构建完整 map,因此内存占用保持在较低水平。
## 许可证
本项目基于 [MIT License](LICENSE) 授权。区域数据 (`data.json`) 来源于印度尼西亚政府的公开数据,仅供教育目的使用。
## 联系方式
[](mailto:wahyuandikaputra.co.id@gmail.com)
[](https://linkedin.com/in/wahyu-andika-putra)
[](https://andikaputra.dev)
[](https://www.instagram.com/w.andikaputraa)
[](https://wa.me/6285728337030)
[](#)
由 **Wahyu Andika Putra** 提供。标签:EVTX分析, Go, Homebrew安装, Ruby工具, 印尼, 数据解析, 数据验证, 文档结构分析, 日志审计, 身份信息查询