regex - महत - रचनात्मक मूल्यांकन और योगात्मक




आईपी ​​का मूल्यांकन कैसे करें? (6)

मैं कैसे निर्धारित कर सकता हूं कि कोई स्ट्रिंग एक आईपी पता है? या तो आईपीवी 4 या आईपीवी 6 ?

कम से कम और अधिक वर्णों की संख्या क्या है?

मुझे लगता है यह एक regex जवाब होगा।


.NET में एक IPAddress प्रकार है जिसमें एक आसान तरीका TryParse है

उदाहरण:

if(System.Net.IPAddress.TryParse(PossibleIPAddress, validatedIPAddress)){
    //validatedIPAddress is good
}

// or more simply:
bool IsValidIPAddress(string possibleIP){
    return System.Net.IPAddress.TryParse(PossibleIPAddress, null)
}

@unsliced ​​जो सही है लेकिन यह निश्चित रूप से कार्यान्वयन पर निर्भर करेगा, यदि आप उपयोगकर्ता से किसी आईपी को पार्सिंग कर रहे हैं तो आप ठीक से regex का इस्तेमाल करते हैं, क्योंकि यह xxxx प्रारूप में होना चाहिए।

IPv6 के लिए आप इसका इस्तेमाल कर सकते हैं

[A-F0-9]{0,4}:[A-F0-9]{0,4}:[A-F0-9]{0,4}:[A-F0-9]{0,4}:[A-F0-9]{0,4}:[A-F0-9]{0,4}:[A-F0-9]{0,4}:[A-F0-9]{0,4}

हालांकि यह आईपीवी 6 के साथ सब कुछ नहीं पकड़ता है, यह अधिक जटिल है, विकिपीडिया के अनुसार निम्नलिखित सभी उदाहरण तकनीकी तौर पर सही हैं, लेकिन उपरोक्त regex केवल *

2001:0db8:0000:0000:0000:0000:1428:57ab*
2001:0db8:0000:0000:0000::1428:57ab*
2001:0db8:0:0:0:0:1428:57ab*
2001:0db8:0:0::1428:57ab
2001:0db8::1428:57ab
2001:db8::1428:57ab

आईपीवी 4 के लिए आप इस नियमित अभिव्यक्ति का उपयोग कर सकते हैं।

\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b

यह बहुत जटिल दिखता है, लेकिन यह प्रत्येक क्वैड को 0-255 संख्या तक सीमित करके काम करता है


आईपीवी 4 बन जाता है: / /\d\d?\d?.\d\d?\d?.\d\d?\d?.\d\d?\d?/

मुझे आईपीवी 6 नियमों के बारे में निश्चित नहीं है


लेकिन सवाल abcd मानते हुए उतना ही आसान नहीं है ... आपके द्वारा एहसास हुआ जितना अधिक रूप हैं

लेकिन निश्चित रूप से यह प्रश्न के लिए एक Google है? बहुत सारे हर regex प्राइमर आप कहीं भी एक उदाहरण के रूप में आईपी का उपयोग कर सकते हैं! आईपीवी 4 + रेगेक्स स्कोर 183,000 हिट!


चूंकि ये रेगेक्स का आधा इस तथ्य को संभालता है कि आखिरी खंड के अंत में कोई अवधि नहीं है, यदि आप एक 'की कड़ी' की कोशिश करते हैं, तो आप इसे आधा में कट कर सकते हैं। अपने संभावित आईपी पते के अंत में

कुछ इस तरह:

bool IsValidIPAddress(string possibleIP){
  CrazyRegex = \b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){4}\b
  return Regex.Match(possibleIP+'.', CrazyRegex)
}




validation