रेल 3 में, क्या स्ट्रिंग एक वैध आईपी पता देखने के लिए एक अंतर्निहित विधि है?रेल 3: आईपी स्ट्रिंग मान्य करें
यदि नहीं, तो मान्य करने का सबसे आसान तरीका क्या है?
रेल 3 में, क्या स्ट्रिंग एक वैध आईपी पता देखने के लिए एक अंतर्निहित विधि है?रेल 3: आईपी स्ट्रिंग मान्य करें
यदि नहीं, तो मान्य करने का सबसे आसान तरीका क्या है?
रेल रास्ता रेल 3 में ActiveRecord के साथ मान्य करने के लिए है:
@ip_regex = /^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/
validates :gateway,
:presence => true,
:uniqueness => true,
:format => { :with => @ip_regex }
अच्छा संसाधन यहां: http://my.rails-royce.org/2010/07/21/email-validation-in-ruby-on-rails-without-regexp/
मुझे RoR के बारे में बहुत कुछ पता नहीं है, लेकिन यदि आपको आईपी पते के सत्यापन के लिए कोई भी अंतर्निहित विधि नहीं मिलती है।
इस नियमित अभिव्यक्ति पर प्रयास करें:
"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$"
आईपी पता मान्य करने के लिए।
मैंने हाल ही में इसे एक मॉड्यूल में उपयोग किया है, इसलिए यह डेस्कटॉप पर था।
आप का उपयोग करना चाहिए एक Regular Expression
करता है कि आप क्या चाहते हैं में से एक है:
/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/.match("#{@systemIP}")
बस उस इंस्टीए को जोड़ना चाहता था एक Resolv::IPv4::Regex
require 'resolv'
validates :gateway, :presence => true, :uniqueness => true,
:format => { :with => Resolv::IPv4::Regex }
यह सुनिश्चित नहीं है कि उन्होंने इस सुविधा को कब जोड़ा, लेकिन यह इतना आसान है – Dex
हां यह काफी आसान है। @Dex यह कम से कम रूबी के बाद से रहा है 1.9.2 – WarmWaffles
मैं पुष्टि कर सकता हूं [यह रूबी 1.8.7 में है] (http://ruby-doc.org/stdlib-1.8.7/libdoc/resolv/rdoc/Resolv/IPv4 .html) – dukedave
में अपने स्वयं के प्रतिमान आप निर्माण का उपयोग कर सकते लिखने की घ के रूप में जैक नीचे उल्लेख आप Resolv::IPv4::Regex
उपयोग कर सकते हैं अगर आप सबनेट स्वीकार करने की जरूरत नहीं है।
यदि आपको इसे स्वीकार करने की आवश्यकता है, तो activemodel-ipaddr_validator मणि आपकी मदद कर सकता है। (अस्वीकरण: मैं मणि के लेखक हूँ)
validates :your_attr, ipaddr: true
अच्छी तरह से काम करता है। शायद अस्वीकरण जोड़ने के लायक है कि यह _your_ मणि है। – Shadwell
तुम भी Regexy::Web::IPv4 जो भी पोर्ट संख्या के साथ आईपी पतों का मिलान कर सकते हैं का उपयोग कर सकते हैं।
आप, साथ ही मानक के पुस्तकालय IPAddr.new
कि सबनेट पार्स होगा, IPV6 और अन्य शांत बातें कॉल कर सकते हैं: (IPAddr) और nil
वापसी अगर प्रारूप गलत था।
बस कार्य करें:
valid = !(IPAddr.new('192.168.2.0/24') rescue nil).nil?
#=> true
valid = !(IPAddr.new('192.168.2.256') rescue nil).nil?
#=> false
मैं IP4 यहाँ बात कर रहा हूँ। – Dex