breskott / sinesp
SINESP 公民 API 客户端
v1.0.0
2020-01-30 19:37 UTC
Requires
- php: >=5.4.0
- ext-curl: *
- ext-libxml: *
- ext-xml: *
This package is auto-updated.
Last update: 2024-09-29 05:29:04 UTC
README
SINESP Cidadão 是一个公开的巴西车辆和公民数据库,非常有助于识别被盗或可疑的汽车或摩托车,以及拥有逮捕令的公民。
Sinesp PHP API 客户端
遗憾的是,政府没有维护一个公开的 API 来执行此类查询。到目前为止,查看特定车辆的唯一方法是通过 Sinesp 网站回答每个请求的验证问题(captcha
)。因此,有必要开发一个 API 以便于访问这些信息。
可用的信息
如果找到指定牌照的 车辆
,服务器将返回以下信息
- codigoRetorno:查询返回代码
- mensagemRetorno:查询返回消息
- codigoSituacao:车辆状态代码
- situacao:车辆状态消息
- modelo:车辆型号
- marca:车辆品牌
- cor:车辆颜色
- ano:车辆制造年份
- anoModelo:车辆型号年份
- placa:查询的牌照
- data:查询的日期和时间
- uf:车辆所在的州或联邦单位
- municipio:车辆所在的市或镇
- chassi:车辆底盘号
- dataAtualizacaoCaracteristicasVeiculo:车辆特征更新日期
- dataAtualizacaoRouboFurto:盗窃或抢劫信息更新日期
- dataAtualizacaoAlarme:
如果找到指定姓名的 逮捕令
,服务器将返回以下信息
- codigoRetorno:查询返回代码
- mensagemRetorno:查询返回消息
- idMandado:逮捕令 ID
- numeroMandado:逮捕令编号
- pessoa:人员姓名
- dataNascimento:人员出生日期
- genitora:人员母亲姓名
- RG:人员身份证号码
- CPF:人员 CPF 号码
- tipoSituacaoMandado:逮捕令状态
- tipoMandado:逮捕令类型
这些信息将通过 关联数组
或作为对象的 属性
提供。
要求
- PHP 5.4+
- cURL
- libxml / XML
安装
使用以下命令安装最新版本:
composer require breskott/sinesp
使用
以下是一个使用此库的简单通用示例
<?php error_reporting(0); require 'vendor/autoload.php'; use Sinesp\Sinesp; use Sinesp\MandadoSinesp; $veiculo = new Sinesp; $mandado = new MandadoSinesp(); try { // Pega pelo Get $placa = $_GET['placa']; $nome = $_GET['nome']; if (!empty($placa)){ $veiculo->buscar($placa); if ($veiculo->existe()) { print_r($veiculo->dados()); } } if (!empty($nome)) { $mandado->buscar($nome); if ($mandado->existe()){ print_r($mandado->dados()); } } } catch (\Exception $e) { echo $e->getMessage(); }
buscar()
方法必须是第一个调用的方法。此方法用于查找具有指定牌照的车辆信息。
在调用 buscar()
方法后,dados()
方法将返回一个关联数组,其中包含车辆或公民的所有信息。
代理
SINESP 可能会阻止来自国外的连接。如果查询因连接错误(例如,timeout
错误)而未返回结果,可以使用代理进行查询。
互联网上有许多免费的代理(例如,http://proxylist.hidemyass.com/
),很容易找到。以下是一个使用代理的示例
$veiculo = new Sinesp; $mandado = new MandadoSinesp(); $veiculo->proxy('177.54.144.208', '80'); // Com proxy, esse metodo deve ser chamado antes do metodo buscar() $mandado->proxy('177.54.144.208', '80'); // Com proxy, esse metodo deve ser chamado antes do metodo buscar() $veiculo->buscar('GWW-6471'); $mandado->buscar('Nome da pessoa'); print_r($veiculo->dados()); print_r($mandado->dados());
可以选择使用 proxy($ip, $porta)
方法,也可以使用具有 ip
和 porta
键的关联数组作为 buscar()
方法的第二个参数。
$veiculo = new Sinesp; $mandado = new MandadoSinesp(); $veiculo->buscar('GWW-6471', ['ip' => '177.54.144.208', 'porta' => '80']); // a consulta usara o proxy especificado $mandado->buscar('Nome da Pessoa', ['ip' => '177.54.144.208', 'porta' => '80']); // a consulta usara o proxy especificado print_r($veiculo->dados()); print_r($mandado->dados());
超时
由于SINESP在阻塞后不会终止其请求,您可能会遇到错误504。为了避免麻烦,已经提供了timeout
方法来设置最大响应时间。
$veiculo->timeout(5); // tempo em segundos $mandado->timeout(5); // tempo em segundos
提示:结合代理(使用不同的代理进行多次尝试),这可以大大提高多个请求的成功率。