Este projeto foi desenvolvido para gerar números de IMEI (International Mobile Equipment Identity) válidos, além de fornecer metadados relacionados a dispositivos móveis, como marca, modelo, cor, memória e CPU. O gerador permite que o usuário forneça uma parte do número IMEI (TAC e serial parcial), e então gera IMEIs válidos usando o algoritmo de Luhn como verificação. O projeto é modular, podendo ser utilizado tanto como uma aplicação de linha de comando quanto como uma biblioteca em outros projetos.
O IMEI é um número exclusivo que identifica dispositivos móveis em redes celulares. Ele possui 15 dígitos e é usado pelos operadores de redes para verificar a validade dos dispositivos e, se necessário, bloquear aparelhos roubados ou inválidos. O IMEI é dividido em três partes principais:
- TAC (Type Allocation Code): Composto pelos primeiros 8 dígitos, identifica o fabricante e o modelo do dispositivo.
- Número de Série: Composto pelos 6 dígitos seguintes, que são únicos para cada dispositivo fabricado.
- Dígito Verificador: O último dígito é calculado usando o algoritmo de Luhn, que valida o IMEI.
Um número IMEI típico tem a seguinte estrutura:
123456 78 901234 5
| | | | |
TAC | | | Check Digit
| | Serial Number
| |
| Manufacturer Code
Model Code
Você precisará ter o Go instalado no seu ambiente.
-
Clone este repositório:
git clone https://github.com/seuusuario/gerador-imei.git cd gerador-imei -
Execute o projeto diretamente:
go run main.go
Isso iniciará a aplicação de linha de comando, que solicitará ao usuário os primeiros 8 a 12 dígitos do IMEI e quantos números de IMEI deseja gerar.
$ go run main.go
Enter the first 8 - 12 digits: 12345678
Enter the number of IMEI numbers to generate: 3
IMEI: 123456789012345
Brand: Apple
Model: iPhone 13
Color: Black
Memory: 128GB
CPU: A15 Bionic
IMEI: 123456789012346
Brand: Samsung
Model: Galaxy S22
Color: White
Memory: 128GB
CPU: Exynos 2200
IMEI: 123456789012347
Brand: Xiaomi
Model: Mi 11
Color: Gray
Memory: 128GB
CPU: Snapdragon 888O programa gerará números IMEI válidos e associará cada um a um modelo de celular aleatório, fornecendo informações como a marca, cor, memória e CPU.
Se desejar utilizar este projeto como uma biblioteca em outro código Go, basta importar o pacote imei e usar a função GenerateIMEIs:
$ go get github.com/jesusrj/imei-generatorpackage main
import (
"fmt"
"github.com/jesusrj/imei-generator/pkg/imei"
)
func main() {
devices, err := imei.GenerateIMEIs("12345678", 5)
if err != nil {
fmt.Println("Erro:", err)
return
}
for _, device := range devices {
fmt.Printf("IMEI: %s\nBrand: %s\nModel: %s\n", device.IMEI, device.Brand, device.Model)
}
}Isso permitirá que você gere IMEIs e receba os metadados relacionados de forma fácil e modular.