Recursive name resolution - Message exchange - dns

I was reading about recursive name resolution, and I understand how it works and all. But, I wanted to know that if a client queried a url like this:
http://www.dept.abc.edu/~dept103/
then how are the messages exchanged? Like will the first contacted DNS server query with an iterative query to the edu DNS server first to obtain a referral to abc.edu and so on?
What about the ~dept103? Is that used too?

~dept103 has nothing to do with DNS. In this instance it's a folder name, but it could be a file, or query string.
If the query can not be resolved locally, for example from cache, then an outside name server is contacted.
First the root DNS server is queried, then .edu, then abc.edu, then dept.abc.edu and finally www.dept.abc.edu.
More info here: https://technet.microsoft.com/en-gb/library/cc775637%28v=ws.10%29.aspx

Related

How can I avoid collecting client location info from Application Insights in node.js?

I have a node.js application and I am using Application Insights to collect telemetry on our users. We are using the applicationinsights npm package.
Our users' privacy is very important to us and we want to collect as little data about them as we need. To this end, we do not want to collect location data (country, state/province, and client-ip). However, I can't see how we can avoid sending that data to azure. Is it possible to avoid sending it?
I'm guessing that the location data is coming directly from the http request. So, it might be that I need to change something in the npm package to remove the location headers from the request, but this does not appear to be exposed to the application.
Any ideas on how to fix this?
As Matt mentioned, you can change the data being sent to App Insights- this is certainly necessary in cases where the default logging contains information you don't want sent to our servers for any reason. The only thing I would adjust from his suggestion is the it is recommended to use TelemetryInitializers instead of TelemetryProcessors to do this modification. Any part of the data model should be able to be adjusted or removed from an initializer. This is also particularly useful if there is anything in the request data that you would consider PII. You can see the non-custom data model here: https://learn.microsoft.com/en-us/azure/azure-monitor/app/export-data-model
All location data in App Insights is based on IP address. The IP address is sent to App Insights and from there is is processed using the GeoLite2 database. Once the conversion happens, we discard the IP address so that we are never keeping IP addresses permanently. That's why when you query your logs the IP address field will always contain 0.0.0.0 for all records.

Dblookup not working

temp:=#DbLookup("Notes":"NoCache";"ARRoW/SSS":"sss/sssProj.nsf";"(Lookup for Community)";"State of Maine";2);
temp1:=#DbLookup("Notes":"NoCache";"ARRoW/SSS":"sss/sssProj.nsf";"(Lookup for Community)";"State of Maine";3);
temp2:=#DbLookup("Notes":"NoCache";"ARRoW/SSS":"sss/sssProj.nsf";"(Lookup for Community POC)";"State of Maine";4);
#If(#IsError(temp)|#IsError(temp1)|#IsError(temp2);"Error";temp + " " + temp1 + " " + temp2)
Hi this works on Lotus Notes Client but doesn't work on web Any help is welcome thanks in advance!
There are typically three types of root causes for something like this.
One type of problem is server trust. This only applies if there are two servers involved. I.e., the web server is ServerX/SSS and the code is trying to access ARRoW/SSS. You need to review ARRoW/SSS's server document and check whether "ServerX/SSS" is listed in the field for "Trusted servers". (Also note that if this is a really, really old version of Domino - before version 6 if I recall correctly - then the trusted servers feature is not there and you cannot make cross-server calls to #DbLookup in web code.)
The second type of problem is that the server where the code is running can not resolve the name of the server where the database lives. The code is accessing server ARRoW/SSS, but you haven't said whether ARRoW/SSS is the actual web server, so let's look at both cases.
Assuming that it is all happening on one server, there can still be a name resolution problem because of the way the formula is coded. Try specifying "":"sss/sssProj.nsf" instead of "ARRoW/SSS":"sss/sssProj.nsf". If that fixes your problem, great! But it means that you still have a problem either in your server document or with the DNS configuration on your Domino server and you should address that. You should probably continue with the troubleshooting that I give in the next paragraph. Just bear in mind that everything I say there is true even if ServerX/SSS is really the same as Arrow/SSS.
If the code is running on web server ServerX/SSS, then you need to make sure that ServerX can connect to ARRoW/SSS. The easiest way to do this is to bring up the console for ServerX and enter the command 'trace ARRoW/SSS'. If it fails, check the server documents and/or connection documents for correct IP addresses or host names, and open a command window on the server and try a ping using the exact information in the server documents. If it fails, you have a networking issue. One of the underlying causes I've seen for a problem like this is that there is no connection document (because the servers are in the same named network, but neither the IP address nor the fully-qualified host name is entered in the networks table in the server document, so Domino just asks DNS to resolve the common name 'ARRow' - but the DNS configuration on the web server does not include a default search path so the name is not resolved. But you need to check everything until you can get a 'trace' command to succeed.
The third type of problem is Access Control. This is a broad category that comes down to the fact that the identity that the code is running under either does not have access to the server ARRoW/SSS, the database sss/sssProj.nsf, the view (Lookup for Community)" or the document(s) with the key "State of Maine". There are a lot of things to check. If the code is running in a field formula, the identity is that of the user, and if the same user does not get the error through the web client then you need to look at the database properties for sss/sssProj.nsf and check the maximum web access level. If the code is running as an agent, you need to check the agent properties to determine what identity the agent is running under, and then review everything: the security settings in the server document, the database ACL, restrictions on the view, and reader names fields in the documents.

How to make sure getaddrinfo( ) sends out DNS query everytime it is called

I am working on a project with android phones(language C) and I am using getaddrinfo() to check that the phone is able to speak to the nameserver assigned to it. But I think getaddrinfo is reading the cached values from resolv.conf. How can I send out dns query everytime I use getaddrinfo().
A related question : How often is the resolv.conf file updated?
Note : If I am wrong in anything please point me out, I will correct it.
Thank you

The pstrServer parameter of CInternetSession::GetFtpConnection

I am recently building a simple web browser just to test my internet skills. I came across the GetFtpConnection method of class CInternetSession, and I don't know how to "fill in" the pstrServer parameter, which indicates the FTP server name. I tried to Google it out, but I can't find any useful information. Can you tell me what is a server name? Is it something like www.google.com? Thank you very much.
The FTP protocol is described in many places, including Wikipedia. An example from the linked page shows the format of an FTP URL:
In the above example, the <host> portion is what is meant by the "server" in the GetFtpConnection function.
You can also see where the other parameters, like user, password and port number map.
The following code example from MSDN shows how the function is used:
ptrServer is the DNS name of the server - e.g. www.google.com, ftp.microsoft.com or its IP address - e.g. 74.125.131.105.

Web (anchor) link to a Notes database

Is there a way to create a regular web (or anchor) link that will open a Notes client and display a pre-determined database from the workplace?
try this for a local database: notes:///[drive]:/[path_to_notes_data]/[database.nsf]
This will open the database in the notes-client.
Regards
Thorsten
Thorstens answer should work for databases on servers aswell:
notes://[server name]/[path-to-database-on-server]
..or
notes://[server name]/__[replica-id].nsf
The Notes client seems to replace "/" with "#" in the server name to create a server name without slashes - but the host name or ip of the server should work.
I believe that leaving the server name out (or specifying 127.0.0.1) will use the currently active replica on the desktop - possibly with priority to local replicas.
notes:///__[replica-id].nsf
Some details can be found in the footnote here: Specifying valid notesurl entries

Resources