Solved

perl, valid dns name

Posted on 2010-11-24
14
414 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

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

Title # Comments Views Activity
Fixing some Issues with regex again 9 41
Basic Regex for use in webservice 1 73
remove string in script sql 10 97
Perl Frameworks 1 105
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…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
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…

679 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