it() Australian Database http://www.environment.gov.au/database/MAN200R.html
it() Canadian Database http://GeoNames.NRCan.gc.ca/
it() Atlas of the World, indexed by city http://www.astro.com/atlas/
+ it() Xerox PARC Map Viewer http://mapweb.parc.xerox.com/map
it() GNU Timezone database, organized partially by country /usr/share/zoneinfo/zone.tab
)
F.write("; %s\n"%(EmailAddress(x)));
for z in x[1]["dnszoneentry"]:
Split = string.split(string.lower(z));
- for y in range(0,len(Split)):
- if Split[y] == "$":
- Split[y] = "\n\t";
-
- Line = string.join(Split," ") + "\n";
- F.write(Line);
+ if string.lower(Split[1]) == 'in':
+ for y in range(0,len(Split)):
+ if Split[y] == "$":
+ Split[y] = "\n\t";
+ Line = string.join(Split," ") + "\n";
+ F.write(Line);
+
+ # Write some identication information
+ if string.lower(Split[2]) != "cname":
+ Line = "%s IN TXT \"%s\"\n"%(Split[0],EmailAddress(x));
+ for y in x[1]["keyfingerprint"]:
+ Line = Line + "%s IN TXT \"PGP %s\"\n"%(Split[0],FormatPGPKey(y));
+ F.write(Line);
+ else:
+ Line = "; Err %s"%(str(Split));
+ F.write(Line);
+
F.write("\n");
except:
pass;
"gecos","loginshell","userpassword","shadowlastchange",\
"shadowmin","shadowmax","shadowwarning","shadowinactive",
"shadowexpire","emailforward","latitude","longitude",\
- "allowedhosts","sshrsaauthkey","dnszoneentry","cn","sn"]);
+ "allowedhosts","sshrsaauthkey","dnszoneentry","cn","sn",\
+ "keyfingerprint"]);
# Open the control file
if len(sys.argv) == 1:
if G[0] == None:
return "%s %s %s..%s %s"%(G[1],G[2],G[3][:8],G[3][-8:],G[4]);
return "%s %s %s %s..%s %s"%(G[0],G[1],G[2],G[3][:8],G[3][-8:],G[4]);
+
+def FormatPGPKey(Str):
+ Res = "";
+
+ # PGP 2.x Print
+ if (len(Str) == 32):
+ I = 0;
+ while (I < len(Str)):
+ if I+2 == 32/2:
+ Res = "%s %s%s "%(Res,Str[I],Str[I+1]);
+ else:
+ Res = "%s%s%s "%(Res,Str[I],Str[I+1]);
+ I = I + 2;
+ elif (len(Str) == 40):
+ # OpenPGP Print
+ I = 0;
+ while (I < len(Str)):
+ if I+4 == 40/2:
+ Res = "%s %s%s%s%s "%(Res,Str[I],Str[I+1],Str[I+2],Str[I+3]);
+ else:
+ Res = "%s%s%s%s%s "%(Res,Str[I],Str[I+1],Str[I+2],Str[I+3]);
+ I = I + 4;
+ else:
+ Res = Str;
+ return Res;
+