Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

IPv6 को डेटाबेस में स्टोर करें

knittl करीब था, बाइनरी (16) के बजाय उपयोगकर्ता196009 के रूप में varbinary(16) का उपयोग करें उत्तर दिया संबंधित प्रश्न में। इससे मेरा काम बनता है। कैसे?

आईपी ​​स्टोर करना:

<?php
  $query = "insert into stats(vis_ip, id_stat) values('" . inet_pton('66.102.7.104') . "', '1')"; // google's IP address
  // using a PDO wrapper. http://www.phpclasses.org/package/5206-PHP-Execute-database-queries-from-parameters-using-PDO.html
  include_once 'db.php';
  $c = new DB();
  $visit = $c->getResults($query); // stored as binary
?>

आईपी ​​प्राप्त करना:

<?php
  $query = "SELECT `vis_ip` FROM `stats` WHERE `id_stat`=1";
  // PDO wrapper
  include_once 'db.php';
  $c = new DB();
  $stats = $c->getRow($query);
  echo inet_ntop($stats->vis_ip); // outputs 66.102.7.104
?> 

इसे IPv6 पतों के साथ काम करना चाहिए (मेरे पास IPv4 कनेक्शन है)। मैं एक विशेषज्ञ नहीं हूं इसलिए मुझे अभी तक पता नहीं है कि क्या varbinary लंबाई सही है, लेकिन मैंने कैसे कहा, यह मेरे लिए काम करता है।

यह जांचने के लिए कि आपके PHP संस्करण/होस्ट में 'IPv6 समर्थन' सक्षम है या नहीं:

<?php
  phpinfo(INFO_GENERAL); // http://php.net/manual/es/function.phpinfo.php
?> 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रिवर्स इंजीनियर MySQL और PostgreSQL डीबी के लिए आवेदन?

  2. पीडीओ इन () ऐरे स्टेटमेंट और एक प्लेसहोल्डर

  3. Django में विदेशी कुंजी संबंध के साथ दो तालिकाओं से डेटा पुनर्प्राप्त करें?

  4. php बाधा उल्लंघन त्रुटि 1452

  5. डॉक्ट्रिन में जॉइन-टेबल (ManyToMany) से पंक्तियों को कैसे हटाएं?