Example #1
0
 private function updateIxInfo()
 {
     foreach ($this->ixs as $ix) {
         // Normilise the emails
         $emails = [];
         if (!empty($ix->tech_email)) {
             $emails[] = strtolower($ix->tech_email);
         }
         if (!empty($ix->policy_email)) {
             $emails[] = strtolower($ix->policy_email);
         }
         $emails = array_unique($emails);
         $ixEntry = IX::where('peeringdb_id', $ix->id)->first();
         if (is_null($ixEntry) === true) {
             // As this entry does not exists we will create it.
             $this->cli->br()->comment('Adding IX: ' . $ix->name)->br();
             $newIx = new IX();
             $newIx->peeringdb_id = $ix->id;
             $newIx->name = $ix->name;
             $newIx->name_full = !empty($ix->name_long) ? $ix->name_long : $ix->name;
             $newIx->website = $ix->website;
             $newIx->tech_email = $ix->tech_email;
             $newIx->tech_phone = $ix->tech_phone;
             $newIx->policy_email = $ix->policy_email;
             $newIx->policy_phone = $ix->policy_phone;
             $newIx->city = $ix->city;
             $newIx->counrty_code = $ix->country;
             $newIx->url_stats = $ix->url_stats;
             $newIx->save();
             continue;
         }
         $this->cli->br()->comment('Updating IX: ' . $ix->name)->br();
         // Lets update the info that we have about the IX:
         $ixEntry->name = $ix->name;
         $ixEntry->name_full = !empty($ix->name_long) ? $ix->name_long : $ix->name;
         $ixEntry->website = $ix->website;
         $ixEntry->tech_email = $ix->tech_email;
         $ixEntry->tech_phone = $ix->tech_phone;
         $ixEntry->policy_email = $ix->policy_email;
         $ixEntry->policy_phone = $ix->policy_phone;
         $ixEntry->city = $ix->city;
         $ixEntry->counrty_code = $ix->country;
         $ixEntry->url_stats = $ix->url_stats;
         $ixEntry->save();
     }
 }
Example #2
0
 public function search(Request $request)
 {
     $queryTerm = $request->get('query_term');
     $queryTerm = trim(str_replace(['/', '?', '!', ':', ',', '\'', '-', '_', '.', '+'], "", strtolower($queryTerm)));
     $elasticQuery['filtered']['query'] = ['bool' => ['should' => [['wildcard' => ['name' => ['value' => '*' . $queryTerm . '*', 'boost' => 2]]], ['wildcard' => ['description' => ['value' => '*' . $queryTerm . '*']]], ['wildcard' => ['name_full' => ['value' => '*' . $queryTerm . '*']]], ['multi_match' => ['query' => $queryTerm, 'fields' => ['asn^5']]]], 'minimum_should_match' => 1]];
     $asnSort = [['asn' => ['order' => 'asc']]];
     $ipSort = [['ip' => ['order' => 'asc']]];
     $asns = ASN::searchByQuery($elasticQuery, $aggregations = null, $sourceFields = null, $limit = 100, $offset = null, $asnSort);
     $ipv4Prefixes = IPv4PrefixWhois::searchByQuery($elasticQuery, $aggregations = null, $sourceFields = null, $limit = 200, $offset = null, $ipSort);
     $ipv6Prefixes = IPv6PrefixWhois::searchByQuery($elasticQuery, $aggregations = null, $sourceFields = null, $limit = 200, $offset = null, $ipSort);
     $ixs = IX::searchByQuery($elasticQuery, $aggregations = null, $sourceFields = null, $limit = 200, $offset = null, $ipSort);
     $data['asns'] = [];
     foreach ($asns as $asn) {
         $asnData['asn'] = $asn->asn;
         $asnData['name'] = $asn->name;
         $asnData['description'] = $asn->description;
         $asnData['country_code'] = empty($asn->counrty_code) !== true ? $asn->counrty_code : null;
         $asnData['email_contacts'] = $asn->email_contacts;
         $asnData['abuse_contacts'] = $asn->abuse_contacts;
         $asnData['rir_name'] = $asn->rir->name;
         $data['asns'][] = $asnData;
     }
     $data['ipv4_prefixes'] = [];
     foreach ($ipv4Prefixes as $prefix) {
         $prefixData['prefix'] = $prefix->ip . '/' . $prefix->cidr;
         $prefixData['ip'] = $prefix->ip;
         $prefixData['cidr'] = $prefix->cidr;
         $prefixData['name'] = $prefix->name;
         $prefixData['country_code'] = empty($prefix->counrty_code) !== true ? $prefix->counrty_code : null;
         $prefixData['description'] = $prefix->description;
         $prefixData['email_contacts'] = $prefix->email_contacts;
         $prefixData['abuse_contacts'] = $prefix->abuse_contacts;
         $prefixData['rir_name'] = $prefix->rir->name;
         $prefixData['parent_prefix'] = $prefix->parent_ip . '/' . $prefix->parent_cidr;
         $prefixData['parent_ip'] = $prefix->parent_ip;
         $prefixData['parent_cidr'] = $prefix->parent_cidr;
         $data['ipv4_prefixes'][] = $prefixData;
     }
     $data['ipv6_prefixes'] = [];
     foreach ($ipv6Prefixes as $prefix) {
         $prefixData['prefix'] = $prefix->ip . '/' . $prefix->cidr;
         $prefixData['ip'] = $prefix->ip;
         $prefixData['cidr'] = $prefix->cidr;
         $prefixData['name'] = $prefix->name;
         $prefixData['country_code'] = empty($prefix->counrty_code) !== true ? $prefix->counrty_code : null;
         $prefixData['description'] = $prefix->description;
         $prefixData['email_contacts'] = $prefix->email_contacts;
         $prefixData['abuse_contacts'] = $prefix->abuse_contacts;
         $prefixData['rir_name'] = $prefix->rir->name;
         $prefixData['parent_prefix'] = $prefix->parent_ip . '/' . $prefix->parent_cidr;
         $prefixData['parent_ip'] = $prefix->parent_ip;
         $prefixData['parent_cidr'] = $prefix->parent_cidr;
         $data['ipv6_prefixes'][] = $prefixData;
     }
     $data['internet_exchanges'] = [];
     foreach ($ixs as $ix) {
         $ixData['ix_id'] = $ix->id;
         $ixData['name'] = $ix->name;
         $ixData['name_full'] = $ix->name_full;
         $ixData['country_code'] = $ix->counrty_code;
         $ixData['city'] = $ix->city;
         $data['internet_exchanges'][] = $ixData;
     }
     return $this->sendData($data);
 }