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

R . में एक पूर्णांक के रूप में IP पता (IPv4) कनवर्ट करें

आप जो रूपांतरण चाहते थे, उसके बारे में आप पूरी तरह से विशिष्ट नहीं थे, इसलिए मैंने दशमलव मानों को गुणा किया जो मैंने सोचा था कि उपयुक्त हो सकता है (यह सोचकर कि तीन अंकों की वस्तुएं वास्तव में "आधार 256" संख्याओं में अंक समकक्ष थीं, फिर आधार 10 में फिर से प्रदर्शित की गईं)। यदि आप चाहते हैं कि स्थानों के क्रम को उलट दिया जाए, जैसा कि मैंने कहीं और सुझाव दिया है, तो आप दोनों समाधानों में 'वैल' की अनुक्रमणिका को उलट देंगे

 convIP <- function(IP) { vals <- read.table(text=as.character(IP), sep=".")
               return( vals[1] + 256*vals[2] + 256^2*vals[3] + 256^3*vals[4]) }

> convIP(dat$IP)
          V1
1 2476281533
2  134990147
3 2352289344
4  173345204
5 2122844258
6 1153107520

(यह निर्दिष्ट करने के लिए आमतौर पर बेहतर आईटी अभ्यास है कि आप सही उत्तर क्या सोचते हैं ताकि परीक्षण किया जा सके। ऊपर बर्टेलसन की टिप्पणी तेज होगी और कारकों के रूप में 1000, 1000^2 और 1000^3 का निहित रूप से उपयोग करती है।)

मैं कोड को सरल बनाने में एक दरार ले रहा हूं लेकिन डर है कि Reduce("+", ...) का उपयोग करने की आवश्यकता है इसे और अधिक जटिल बना सकता है। आप sum का उपयोग नहीं कर सकते क्योंकि यह वेक्टरकृत नहीं है।

 convIP <- function(IP) { vals <- read.table(text=as.character(IP), sep=".")
                return( Reduce("+", vals*256^(3:0))) }

> convIP(dat$IP)
[1] 5737849088    5112017 2717938944    1245449 3925902848   16449610



  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 में विदेशी कुंजी की मूल बातें?

  2. उपयोगकर्ताओं और संपर्कों के लिए डेटाबेस डिज़ाइन

  3. MySQL सेवा स्टार्टअप पर SQL क्वेरी चलाएँ

  4. सीमित संख्या में पंक्तियाँ लाने के लिए MySQL GROUP_CONCAT को कैसे हैक करें?

  5. MySQL में मौजूदा टेबल में ऑटो इंक्रीमेंट कॉलम कैसे जोड़ें