title: "Script PHP Cek Double Entry Dari Setiap Line Dalam 1 File"
description: "Script untuk pengecekan double entry dari setiap linenya dalam 1 file. Dapat digunain juga untuk pengecekan wordlist, email, password, proxy, dll"
Jadi ceritanya kemarin ada **NOC** yang bertanya, bisa ga sih klo kita ngecek entri konfigurasi yang *double* menggunakan script. Terus ane dikasi contoh file yang namanya `nice.rsc`. Setelah saya buka, ternyata file tersebut digunakan untuk menambahkan alamat IP yang terdaftar di **OpenIXP** ke **MikroTik RouterOS**.
<!--more-->
Setelah saya cek lagi dari atas ke bawah, ternyata konfigurasinya 1 line 1 rule. Karena 1 line 1 rule juga saya jadi ingat dengan sistem semacam wordlist untuk melakukan *bruteforce*. =D
Lalu saya iseng dan membuat scriptnya untuk ngecek entry yang double dari setiap linenya dalam 1 file. Jadi bisa digunain juga untuk ngecek wordlist, email, password, proxy, dll yang double2.
Penampakannya kurang lebih seperti di sini :
{{<youtubecCQPADuOHfU>}}
Scriptnya:
```php
<?php
/**
* This program used to find duplicate entry for each line of text from given
* file. For example to check list of email, proxy, username:password,
* configurations, etc.
*
* This is not WebBased PHP program, so use it from CLI.
* Depend on your machine, you might need to reset your PHP memory_limit to -1
* for checking large file.
*
* Still very early release, hasn't been tested on Windows and just for fun
* coding purpose :)
*
* coded by ditatompel
* Usage : new findDuplicates($argv);
*/
class FindDuplicates
{
var $cmd = array();
var $reqFunc = array('file_get_contents', 'fopen', 'fwrite');
function __construct ($opts) {
$this->checkReqFunc();
$this->cmd = $this->args($opts);
if ( !array_key_exists('list', $this->cmd) )
exit( $this->usage($this->cmd['input'][0]) );
$this->enumValues($this->cmd['list']);
}
function checkReqFunc() {
$ok = 1;
foreach( $this->reqFunc as $func ) {
if ( !function_exists($func) ) {
print 'You need function ' . $func . " to execute this tool!\n";
$ok = 0;
}
}
if(php_sapi_name() != 'cli') {
print "<strong>This is not WebBased program! Use this tool from CLI.</strong>";
$ok = 0;
}
if ( !$ok ) exit;
}
/**
* Check list file
*@return bool. TRUE if file exists and readable.
*/
function cekFile ($file) {
if ( !is_file($file) || !is_readable($file) )
return false;
return true;
}
private function usage($file) {
$msg = "Usage : ";
$msg .= $file . " --list=[list]\n";
$msg .= "\tOptions : \n";
$msg .= "\t\t-v :\t\t verbose mode.\n";
$msg .= "\t\t--out=[file] :\t Save non duplicate entry to file.\n";
Akan menampilkan line yang sama/serupa/sudah ada ke terminal dari file `openixp.rsc` kemudian bikin file baru yang udah '*dibersihin*' dengan nama `openixp.rsc.new`.
Misal file yang mau di cek gede, sampe puluhan mega, mungkin perlu ngeset **PHP**`memory_limit` nya jadi `-1`.
Belum saya test di windows. Silahkan klo ada yg mau mengembangkan.