Thread ENV{'SCRIPT_NAME'} umschreiben (4 answers)
Opened by gast at 2009-07-25 15:13

Gast gast
 2009-07-25 15:13
#123552 #123552
Hallo leute,
ich versuche krampfhaft diesen $ENV{'SCRIPT_NAME'} Befehl umzuschreiben das keine endung wie ?domain.de rangehängt wird oder das das Ergebnis nicht im neuen Tab geöffnet wird, muß dazu sagen bin Neuling in Perl Programmierung.

eingebunden wird das script so :
Code: (dl )
virtual('tools/mx_lookup.cgi');


hier mal das Script:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DNS MX Lookup</title>
</head>
<body bgcolor="#bcc43e" text="#000000" link="#000000" vlink="#fc0000" alink="#fc0000">
<h2>DNS MX Lookup</h2>
<p>Mit dieser Anwendung k&ouml;nnen Sie die Mail Exchanger sowie Namensserver ermitteln.</p>
<div align="left">
<table border="0" style="background-color:#bcc43e">
<tr>
<td style="padding:0px;text-align:left;">
<form action="$ENV{'SCRIPT_NAME'}" method="get">
<b>Domain eingeben:</b> <input type="text" name="domain" />
&nbsp;&nbsp;<input type="submit" value="Daten Senden" />
</form>
</td>
</tr>
</table>
EOFHTML

# Hauptfunktion

my $domain = param('domain');

if($domain)
{
 if($domain =~ /^([a-zA-Z0-9]{1,}([\.]?|[-]?))*[a-zA-Z0-9]{1,}\.{1}[a-zA-Z]{2,6}$/)
 {
  my $res = new Net::DNS::Resolver;
  my @mx = mx($res,$domain);

  if(@mx)
  {
   print "<b><p>".scalar @mx." Mail Exchanger f&uuml;r Domain $domain gefunden.</b></p>\n\n";
   print "<table border=\"0\">\n<tr>\n<td><b>Server</b></td>\n<td><b>IP-Adresse</b></td>\n<td><b>Echter Hostname</b></td>\n<td><b>Preference</b></td>\n</tr>\n";

   foreach my $mxr(@mx)
   {
    my $server = $mxr->exchange;
    my $ip     = get_ip($res,$server);
    my $host   = gethostbyaddr(inet_aton($ip),AF_INET);
    my $pref   = $mxr->preference;

    print "<tr>\n";
    print "<td>".$server."</td>\n";
    print "<td>".$ip."</td>\n";
    print "<td>".$host."</td>\n";
    print "<td>".$pref."</td>\n";
    print "</tr>\n";
   }
   print "</table>\n\n";
  }
  else
  {
   print "<p>F&uuml;r die Domain $domain wurden keine Mail Exchanger gefunden.<br />\n";
   print "Grund: <i>".$res->errorstring."</i></p>\n\n";
  }

  my $nsd = $res->query($domain,"NS");

  if($nsd)
  {
   my @ns = $nsd->answer;
   @ns = reverse(@ns);

   print "<b><p>Namensserver der Domain $domain</b>:</p>\n\n";
   print "<table border=\"0\">\n<tr>\n<td><b>Server</b></td>\n<td><b>IP-Adresse</b></td>\n<td><b>Echter Hostname</b></td>\n</tr>\n";

   foreach my $nsr(@ns)
   {
    my $server = $nsr->nsdname;
    my $ip     = get_ip($res,$server);
    my $host   = gethostbyaddr(inet_aton($ip),AF_INET);

    print "<tr>\n";
    print "<td>".$server."</td>\n";
    print "<td>".$ip."</td>\n";
    print "<td>".$host."</td>\n";
    print "</tr>\n";
   }
   print "</table>\n";
  }
  else
  {
   print "<p>F&uuml;r die Domain $domain konnten keine Namensserver ermittelt werden.<br />\n";
   print "Grund: <i>".$res->errorstring."</i></p>\n";
  }
 }
 else
 {
  print "<p><b>$domain</b> ist kein g&uuml;ltiger Domainname!</p>\n";
 }
}
else
{
 print "<p>&nbsp;</p>\n";
}

print <<"EOFHTML";
</div>
</body>
EOFHTML

print "</html>";

# get_ip()
#
# Die zu einem Servernamen gehoerende IP-Adresse ermitteln
#
# Parameter: 1. Net::DNS::Resolver-Objekt
#            2. Servername
#
# Rueckgabe: Je nach Kontext ein Skalar oder eine Liste mit
#            der oder den IP-Adressen, ansonsten false.

sub get_ip
{
 my ($res,$server) = @_;
 my @answer = $res->query($server,"A")->answer;

 if(@answer)
 {
  if(wantarray)
  {
   my @ips;
   foreach my $answers(@answer)
   {
    push(@ips,$answers->address);
   }
   return @ips;
  }
  return $answer[0]->address;
 }

 return;
}


Bin für jede Hilfe Dankbar.

View full thread ENV{'SCRIPT_NAME'} umschreiben