-
Ich denke, Umlaute in der Mailadresse müssen ähnlich umgesetzt werden wie Umlaute in Web-Adressen.
Bei z.B. www.schön-in-haan.de wird aus dem "ö" irgendwas mit "xn...", deshalb machen wir auch eine eigene Umleitung in www.schoen-in-haan.de.
-
Moin,
das mit den Umlauten prüfen wir gerade. Aber primär geht es darum, eine gültige Domain Adresse zu prüfen, was mit STRDNSQRY prinzipiel zu 99% funktioniert, aber in Ausnahmefällen aber eben nicht. Hat irgendwas mit dem mx Record zu tun.
Da suchen wir noch nach einer Möglichkeit, die mx Antwort auszuwerten, bzw. eine richtige Anfrage an - wen auch immer - zu stellen.
mfg
DKSPROFI
-
Kann mir jemand am Beispiel der E-Mail-Adresse max.mustermann@a-xyz.de den Aufruf von STRDNSQRY erläutern? Ich möchte das gern in mein RPG-Programm einbauen, mit dem ich die E-Mail-Adressen einer kompletten Kundendatei überprüfen und das Ergebnis in einem Feld der Dateistruktur zurückschreiben möchte. Ich würde pro Kundensatz ein externes CL-Programm per CALL aufrufen und ggf. das Ergebnis (nur `F` für Fehler) über einen Parameter an das aufrufende RPG-Programm zurückgeben.
-
Moin,
habe ich so nie hinbekommen, ich habe die funktion getbyhostname im RPG verwendet. Habe ich mal irgendwo im Netz gefunden, bein Interesse kannst Du es kriegen.
mfg
DKSPROFI
-
So wie die Doku aussieht ist es eher ein Dialogprogramm, dass auch noch extra installiert werden muss.
Die C-Funktion "gethostbyname()" macht dann die DNS-Abfrage und liefert eine HOSTENT-Struktur zurück. Diese muss auch mit "free()" wieder freigegeben werden.
Einfach gehts mit "ping" per CLP und anschließendem RCVMSG für das Ergebnis.
Dabei ist es unerheblich, ob der Ping erfolgreich ist, wenn eine IP gemeldet wird.
Die Anzahl der Pakete kann man auch auf 1 begrenzen.
-
GetHostByName
PHP-Code:
ctl-opt main(main) dftactgrp(*no) option(*nounref); //------------------------------------------------------------------// // // // GetHostByName // // // //----------------- // // R.Ross 12.2016 * // //------------------------------------------------------------------// // Get Host by Name // //------------------------------------------------------------------//
dcl-pr gethost pointer extproc('gethostbyname'); ##host pointer value options(*string); end-pr;
//------------------------------------------------------------------// // Transform Internet Address to a dottet decimal Format // //------------------------------------------------------------------//
dcl-pr transform pointer extproc('inet_ntoa'); ##address uns(10) value; end-pr;
//------------------------------------------------------------------// // Array - HostEntry // //------------------------------------------------------------------//
dcl-s d#host_p pointer;
dcl-ds dshost based(d#host_p); d#name pointer; d#alias pointer; d#addrtyp int(10); d#length int(10); d#addrlist pointer; end-ds;
dcl-s d#addr_p pointer based(d#addrlist); dcl-s d#hostaddr uns(10) based(d#addr_p);
//------------------------------------------------------------------// // Variablen // //------------------------------------------------------------------//
dcl-s h#host char(32); dcl-s h#ipchar char(15); dcl-s h#ip uns(10);
//------------------------------------------------------------------// // Main // //------------------------------------------------------------------// dcl-proc main;
h#host = 'www.web.de';
d#host_p = gethost(%trim(h#host));
if d#host_p <> *null; h#ip = d#hostaddr; h#ipchar = %str(transform(h#ip)); endif;
end-proc; //------------------------------------------------------------------//
-
Schön, dass die Quelle nun nicht mehr abwärtskompatibel bereitgestellt wird.
Immerhin gibts die C-Funktionen schon seit V5R4.
Das war früher auch anders...
-
Moin,
das funz gut, haben wir auch so gemacht. Kann eigentich auch der mx record abgefragt werden? Konkret habe wir eine Mailadresse die wie folgt lautet:
Name_Name.de - Lt DNS ungültig Antwort im STRDNSQRY ist NSDOMAIN,
wenn aber strdnsqry -> set type=mx, dann Name_Name.de eingegeben wird, dann kommt:
Name_Name.de mailexchanger = 10 .mailbox.Name_Name.de
Damit ist die Adresse gültig, obwohl es keine Domain gibt.
mfg
DKSPROFI
-
Moin,
vieleicht etwas kompatibler:
d P_Host S 128A
d inet_addr PR 10U 0 ExtProc('inet_addr')
d address_str * value options(*string)
d INADDR_NONE C CONST(4294967295)
d inet_ntoa PR * ExtProc('inet_ntoa')
d internet_addr 10U 0 value
d p_hostent S *
d hostent DS Based(p_hostent)
d h_name *
d h_aliases *
d h_addrtype 10I 0
d h_length 10I 0
d h_addr_list *
d p_h_addr S * Based(h_addr_list)
d h_addr S 10U 0 Based(p_h_addr)
d gethostbyname PR * extproc('gethostbyname')
d host_name * value options(*string)
D IP S 10U 0
P_Host = 'www.web.de ' ;
IP = inet_addr(%trim(P_host)) ;
If IP = INADDR_NONE ;
p_hostent = gethostbyname(%trim(P_host)) ;
If p_hostent <> *NULL ;
IP = h_addr ;
EndIf ;
EndIf ;
If IP = INADDR_NONE ;
// Fehler
Else ;
// Kein Fehler
EndIf ;
*InLr = *On ;
mfg
DKSPROFI
-
Moin,
und nochmals Old School:
H DFTACTGRP(*NO) ACTGRP(*NEW)
D inet_addr PR 10U 0 ExtProc('inet_addr')
D address_str * value options(*string)
D INADDR_NONE C CONST(4294967295)
D inet_ntoa PR * ExtProc('inet_ntoa')
D internet_addr 10U 0 value
D p_hostent S *
D hostent DS Based(p_hostent)
D h_name *
D h_aliases *
D h_addrtype 10I 0
D h_length 10I 0
D h_addr_list *
D p_h_addr S * Based(h_addr_list)
D h_addr S 10U 0 Based(p_h_addr)
D gethostbyname PR * extproc('gethostbyname')
D host_name * value options(*string)
D host S 32A
D IP S 10U 0
D Msg S 50A
c *entry plist
c parm host
c eval IP = inet_addr(%trim(host))
c if IP = INADDR_NONE
c eval p_hostent = gethostbyname(%trim(host))
c if p_hostent <> *NULL
c eval IP = h_addr
c endif
c endif
c if IP = INADDR_NONE
c eval Msg = 'Host not found!'
c else
c eval Msg = 'IP = ' + %str(inet_ntoa(IP))
c endif
c dsply Msg
c eval *inlr = *on
mfg
DKSPROFI
-
Nun, ein DNS-Server kann auch eine IP-Adresse "127.0.53.53" als gültige IP melden.
Diese IP-Adresse gilt als sog. Konflikt-Adresse.
Auf dieses Problem bin ich nun gestoßen, da es die neue Endung ".box" gibt.
Da aber alle Fritzboxen nun intern generell als Domain "fritz.box" fest und nicht veränderbar eingestellt haben, liefert eine DNS-Auflösung nun grundsätzlich obige Adresse.
Die tatsächlichen IP-Adressen sind nicht mehr erfragbar.
Ja gut, hat mit dem Thema nur indirekt zu tun.
Aber wenn ihr die obige Adresse erhaltet muss das nicht unbedingt falsch sein, auch wenn das gewünschte Ziel ohne Kenntnis der echten IP nicht mehr erreichbar ist.
-
Zitat von andreaspr@aon.at
Falls du 7.2 im Einsatz hast kannst du mit Regex einen großteil der Prüfung durchführen lassen.
Da du ja auch in RPG einfach SQL Funktionen einbauen kannst.
Musst dir im Internet nur den richtigen Pattern holen und dann ist es ein 1-Zeiler.
lg Andreas
Hi,
ja sowas stelle ich mir vor.
Allerdings ist mir die Syntax nicht ganz klar .
Wir haben V7R2 und die ERGEXP_Like funktionieren.
Hier mal ein Beispiel :
PHP-Code:
select 'x' from sysibm/sysdummy1
where not
(REGEXP_like('q@m@Pr.de','([\w-\.]+)@((?:[\w]+\.)+)([-zA-Z]{2,4})'
))
Das Beispiel ist zwar noch falsch, aber SQL klappt.
Similar Threads
-
By _MG_ in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 22-11-15, 09:19
-
By mott in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 15-10-14, 12:43
-
By Uwe Kohlberg in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 21-08-08, 08:32
-
By systemer in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 19-02-03, 08:33
-
By karin-vogelmann in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 09-11-01, 15:10
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks