Solved

perl, valid dns name

Posted on 2010-11-24
14
409 Views
Last Modified: 2012-05-10
A valid DNS name has to be (it does not have to have .com etc.)
   1. A host name (label) can start or end with a letter or a number
   2. A host name (label) MUST NOT start or end with a '-' (dash)
   3. A host name (label) MUST NOT consist of all numeric values
   4. A host name (label) can be up to 63 characters

I am new to perl.  Can you write either one or 4 separate regular expression (i prefer multiple regex)?
0
Comment
Question by:rgbcof
  • 7
  • 3
  • 2
  • +2
14 Comments
 

Author Comment

by:rgbcof
ID: 34209360
And also lower case only.
0
 
LVL 16

Expert Comment

by:santoshmotwani
ID: 34209442
0
 
LVL 16

Accepted Solution

by:
jmatix earned 333 total points
ID: 34209500
This rule will take care of rule 1,2 and 4

$dns =~ /^([a-z0-9][a-z0-9\-]*){1,63}$/;

This will take care of 3.

$dns =~ /[^\d]/;
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 34209516
santoshmotwani's example is fine. If you would rather it be separated, then this should be what you need:
[1] & [2]
^[a-zA-Z0-9].*[a-zA-Z0-9]$

[3]
^(?!\d+)$

[4]
^.{1,63}$

Open in new window

0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 34209524
@jmatix

Your first pattern fails rule 2.
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 34209541
Correction to account for lowercase only:
[1] & [2]
^[a-z0-9].*[a-z0-9]$

Open in new window

0
 
LVL 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 167 total points
ID: 34209565
Sheesh...  I must be tired. Correction to 3 as well. Repost of all:
[1] & [2]
^[a-z0-9].*[a-z0-9]$

[3]
^(?!\d+$)

[4]
^.{1,63}$

Open in new window

0
 
LVL 48

Expert Comment

by:Tintin
ID: 34209583
0
 
LVL 16

Expert Comment

by:jmatix
ID: 34209692
@kaufmed:

I am checking if it starts with an alpha-num. So there is no need to check separately that it does not start with dash(-).

0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 34209712
>>  MUST NOT start or end with a '-' (dash)
0
 
LVL 16

Assisted Solution

by:jmatix
jmatix earned 333 total points
ID: 34209797
Oops! Didn't notice the end part (I should have known better):

$dns =~ /^[a-z\d][a-z\d\-]{0,61}[a-z\d]$/;
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 34209802
@jmatix

Also, the bound on your "length" is from 1 to Infinity. The quantifier applies to EVERYTHING inside the parentheses.
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 34209806
NM. You caught it in the new one  :)
0
 

Author Closing Comment

by:rgbcof
ID: 34210049
Gents, the solutions are great.   The Regex library is a good way too, but our systems don't have that library and we can't make the udpate to all of them.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Whatever be the reason, if you are working on web development side,  you will need day-today validation codes like email validation, date validation , IP address validation, phone validation on any of the edit page or say at the time of registration…
As most anyone who uses or has come across them can attest to, regular expressions (regex) are a complicated bit of magic. Packed so succinctly within their cryptic syntax lies a great deal of power. It's not the "take over the world" kind of power,…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question