importVendors()

importVendors() – 製造者のファイルをデータベースあるいは配列にインポートする

Synopsis

require_once 'Net/MAC.php';

mixed importVendors ( string $file , boolean $doReturn = = false )

Description

このメソッドは、製造者のファイルをパースします。これは http://anonsvn.wireshark.org/wireshark/trunk/manuf のような形式のもので、MAC アドレスのプレフィックスとベンダーとの対応の一覧となっています。 パラメータ $doReturn が FALSE の場合、 このクラスのファクトリで指定したデータベースにデータがインポートされます。 しかし $doReturn が TRUE の場合は、返り値が連想配列となり、 キー 'vendor' および 'description' にデータが格納されます。

Parameter

  • string $file パースする製造者ファイルのファイル名あるいは URL。

  • string $doReturn TRUE の場合は、 配列が返されます。FALSE の場合は、データがデータベースに保存されます。

Return value

mixed - $doReturn が TRUE の場合は、配列を返します。それ以外の場合は、成功した場合に TRUE を返します。いずれの場合も、失敗したときには Net_MAC_Exception オブジェクトをスローします。

Note

This function can not be called statically.

このメソッドは、エラー時に例外をスローします。 そのため、このメソッドは常に try/catch ブロック内でコールしなければなりません。

Example

URL を指定した importVendors() の使用法

<?php
require_once 'Net/MAC.php';
require_once 
'MDB2.php';

$db_type 'pgsql';
$db_host 'localhost';
$db_user 'username';
$db_name 'dbname';
$db_pass 'password';

$dsn "$db_type://$db_user:$db_pass@$db_host/$db_name";

$dbh =& MDB2::factory($dsn);

if (
MDB2::isError($dbh)) {
  echo 
"MDB2 Error: ".$dbh->getUserInfo();
}

$dboptions = array('tablename' => 'macvendors',
                   
'macaddrcol' => 'macaddr',
                   
'vendorcol' => 'vendor',
                   
'desccol' => 'description');

try {
  
$nmh =& new Net_MAC($dbh$dboptions);
} catch (
Net_MAC_Exception $e) {
  echo 
'Net_MAC Error: ' $e->getMessage();
  exit;
}

try {
  
$nmh->importVendors('http://anonsvn.wireshark.org/wireshark/trunk/manuf');
} catch (
Net_MAC_Exception $e) {
  echo 
'Net_MAC Error: ' $e->getMessage();
  exit;
}
?>

これは、URL からのファイルの読み込みに失敗した場合にのみエラーを出力します。

ファイルを指定し、importVendors() の結果を配列で返す方法

<?php
require_once 'Net/MAC.php';
require_once 
'MDB2.php';

$db_type 'pgsql';
$db_host 'localhost';
$db_user 'username';
$db_name 'dbname';
$db_pass 'password';

$dsn "$db_type://$db_user:$db_pass@$db_host/$db_name";

$dbh =& MDB2::factory($dsn);

if (
MDB2::isError($dbh)) {
  echo 
"MDB2 Error: ".$dbh->getUserInfo();
}

$dboptions = array('tablename' => 'macvendors',
                   
'macaddrcol' => 'macaddr',
                   
'vendorcol' => 'vendor',
                   
'desccol' => 'description');

$nmh =& Net_MAC::factory($dbh$dboptions);
if (
PEAR::isError($nmh)){
  echo 
'Net_MAC Error: '.$nmh->getMessage();
}

$vendorArr $nmh->importVendors('./manuf')
if (
PEAR::isError(!$vendorArr)) {
  echo 
'Net_MAC: ' $err->getUserInfo();
  exit;
}

print_r($vendorArr);
?>

これは、成功した場合に MAC アドレスベンダーの全一覧を出力します。 失敗した場合にはエラーメッセージを出力します。

Throws

Net_MAC_Exception をスローします。

MAC アドレスをオブジェクトに設定する (Previous) オブジェクトに保存された MAC アドレスのベンダーを探す (Next)
Last updated: Tue, 02 Sep 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.